producer端發送報錯
com.alibaba.rocketmq.client.exception.MQClientException: Send [3] times, still failed, cost [6244]ms, Topic: TopicTest1, BrokersSent: [fzk, fzk, fzk] See http://docs.aliyun.com/cn#/pub/ons/faq/exceptions&send_msg_failed for further details. at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:522) at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1030) at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:989) at com.alibaba.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:90) at cn.com.fzk.Producer.sendMsg(Producer.java:48) at cn.com.fzk.Producer.main(Producer.java:66) Caused by: com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <172.17.0.1:10911> failed at com.alibaba.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:360) at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.java:270) at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:253) at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:215) at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:671) at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:440) ... 5 more
異常原因:
第一種可能:虛擬機中的網絡太多。
rocketMQ在自動識別網絡的時候識別錯誤。可以先把別的網絡down掉,或者把想用的那個網讓它排在前面(沒驗證過)
ifconfig查看網絡發現還有個docker0的網絡,那個ip就是172.17.0.1。因此連接不上。
先把docke0的網絡停了
systemctl stop docker
sudo ifconfig docker0 down
docker服務啟動后docker0網絡會自動開。
systemctl start docker
只是測試的時候先把其他網絡關了。如果要用docker部署,啟動docker就好。
第二種:setVipChannelEnabled(false)
在啟動broker的時候,啟動成功后會看到broker跑在一個地址上,看上面的端口號(不是10909就是10911)和報的錯的端口是否能對應上。通過producer.setVipChannelEnabled(false)來調整端口,一個是10909一個是10911,具體哪個不記得了。
