在将RocketMQ启动成功后,通过Java客户端程序连接时,抛出如下错误:
org.apache.rocketmq.client.exception.MQClientException: Send [3] times, still failed, cost [9495]ms, Topic: TopicQuickStart, BrokersSent: [localhost.localdomain, localhost.localdomain, localhost.localdomain]
See https://rocketmq.apache.org/docs/faq/ for further details.
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:544)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1069)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1023)
at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:214)
at com.huangx.rocketmq.Producer.main(Producer.java:18)
Caused by: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to failed
at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:388)
at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.java:351)
at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:335)
at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:298)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:696)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:463)
... 4 more第一步:使用telnet连接一下服务器,看看服务器是否能够正常连接。如果不能,去配置防火墙。
第二步:看看你是否开启VIP通道,如下代码:
/*
** 目前这种写法Rocket默认开启了VIP通道,VIP通道端口为10911-2=10909。
** 若Rocket服务器未启动端口10909,则报connect to failed。
** 增加一行代码
*/
producer.setVipChannelEnabled(false);消息消费者同样需要添加这条语句。到这里,问题就解决了。