racketmq rocketmq.client.exception.MQClientException: Send [2] times, s
(2017-10-26 16:30:02)
周三的时候碰到个racketmq的异常:
com.alibaba.rocketmq.client.exception.MQClientException: Send [2] times, still failed, cost [4108]ms, Topic: lk_before_user_topic, BrokersSent: [broker-a, broker-b, null]
For more information, please visit the url, https://github.com/alibaba/RocketMQ/issues/64
当时各种百度、谷歌都没用,加了个e.printStackTrace();打印堆栈信息后,还是没有看到什么可以定位错误的有用信息。因为代码好好的,上周六才上过线。当时都能正常的推送数据到consumer端消费,而https://github.com/alibaba/RocketMQ/issues/64
这个url也已经是404了,所以一直没定位到原因,最后看了下racketmq的源码,是因为超时了,才会这种。后来在异常日志中发现了另外的异常信息:
Caused by: com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.x.xxx:xxx> failed
at com.alibaba.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.
at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.
at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.
at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.
at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.
这也证实了确实是在mq连接时,出现了异常,只是有点奇怪的是:我们当时mq配置的是mq1、mq2(IP、端口不是这个192.168.x.xxx:xxx),后来才确认是因为我们访问的远程mq的集群还有MQ3、MQ4、MQ5、MQ6,而抛出RemotingConnectException: connect to <192.168.x.xxx:xxx> failed的这个IP+端口就是MQ3的IP、商品,而这个IP商品,我们的项目所在服务器没有访问权限。。。至少周六的时候为什么
又是能推送数据的,主要是因为我们配置的mq当时访问的是mq1、mq2里面的一台,所以没有出错,也这证明一件事:mq在访问时,是随机连接到远程mq的集群中的一台,而不是指定了namesrvAddr就是哪个地址。
喜欢
0
赠金笔
加载中,请稍候......