1. 程式人生 > 實用技巧 >org.apache.rocketmq.remoting.exception.RemotingTimeoutException: invokeSync call timeout

org.apache.rocketmq.remoting.exception.RemotingTimeoutException: invokeSync call timeout

==問題==

在本地Debug除錯Flink消費RocketMQ資料的時候,提示如下錯誤

2020-07-23 16:11:31 [----rexel----] INFO  com.rexel.stream.flink.proc.CheckAlarm - [------]ruleDetailMap.size=2
2020-07-23 16:11:31 [----rexel----] INFO  com.rexel.stream.flink.proc.CheckAlarm - ruleDetail=RuleDetail(ruleId=44, productKey=a1B6t6ZG6oR, deviceName=RexelLabDevice1, point=AI01_0001, judge=>, value=4700.0
) 2020-07-23 16:11:31 [----rexel----] INFO com.rexel.stream.flink.proc.CheckAlarm - ruleDetail=RuleDetail(ruleId=45, productKey=a1B6t6ZG6oR, deviceName=RexelLabDevice1, point=AI01_0002, judge=<, value=100.0) 2020-07-23 16:11:31 [----rexel----] INFO com.rexel.stream.flink.proc.CheckAlarm - [------]ruleDetailMap.size=2
2020-07-23 16:11:34 [----rexel----] INFO org.apache.flink.runtime.taskmanager.Task - Source: rmq_app_notice (1/4) (ffc874afb03b8b9d24c0697813a48a75) switched from RUNNING to FAILED. java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingTimeoutException: invokeSync call timeout at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:
681) at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:511) at org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl.updateTopicSubscribeInfoWhenSubscriptionChanged(DefaultMQPushConsumerImpl.java:868) at org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl.start(DefaultMQPushConsumerImpl.java:649) at org.apache.rocketmq.client.consumer.DefaultMQPushConsumer.start(DefaultMQPushConsumer.java:693) at com.rexel.stream.flink.source.RocketSource.run(RocketSource.java:60) at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:100) at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:63) at org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:196) Caused by: org.apache.rocketmq.remoting.exception.RemotingTimeoutException: invokeSync call timeout at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:371) at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:1369) at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:1359) at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:624) ... 8 common frames omitted

==解決辦法==

RocketMQ叢集版本是:4.6.1

程式中依賴的客戶端版本也是4.6.1

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.6.1</version>
</dependency>
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-acl</artifactId>
    <version>4.6.1</version>
</dependency>

有網友建議降低客戶端版本為4.5.0,嘗試了一下,確實可以解決。

--END--