Closed andrezheng-git closed 4 years ago
From the exception stack, it seems that the consumer connection to nameserver has timed out. Is nameserver and consumer started at the same time? In addition, it is recommended to use rocketmq-spring, if you want quickly integrate RocketMQ with Spring Boot.
I will close the Issue first, but please feel free to reopen it if you have any other issues. Issues are generally used for bug reports and feature requests, so it is recommended to discuss questions on the mailing list first, the mailing list address [https://rocketmq.apache.org/about/contact/],
我也遇到这个问题了,不加Thread.sleep(3000),正常启动会报错。 但是如果debug模式,一步一步启动不报错。 加上sleep之后,启动正常。 匪夷所思~~~
Add the following code before consumer.start();
:
DefaultChannelId.newInstance();
The exception will not be thrown.
Add the following code before
consumer.start();
:DefaultChannelId.newInstance();
The exception will not be thrown.
使用这个方法成功了,这个是什么原因,楼主知道吗
Add the following code before
consumer.start();
:DefaultChannelId.newInstance();
The exception will not be thrown.
使用这个方法成功了,这个是什么原因,楼主知道吗
In the static code block of DefaultChannelId
, it takes a lot of time to obtain the corresponding IP by using the host name, and it may have passed 5 seconds in a portable mac notebook computer.
如果使用的是mac操作系统,应该是这个原因导致的,执行下这个命令就能解决 scutil --set HostName $(scutil --get LocalHostName)
When DefaultMQPushConsumer start when inject in a springboot container,it throws a ivokeSync call timeout. If Thread.sleep ahead of the start(), the exception does not be trowed. How to solve the problem.
Caused by: 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 XXX.MQConsumer.init(MQConsumer.java:58) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1922) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1864) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792) ... 16 common frames omitted 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:1371) at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:1361) at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:624) ... 28 common frames omitted