【已解决】RocketMQ在发送消息的时候,提示:MQClientException: No route info of this topic
No route info of this topic有三种原因:一是topic确实不存在,可在服务器执行cat ~/logs/rocketmqlogs/broker.log | grep topicName=xxx确认,设置autoCreateTopicEnable=true或在控制台手动创建即可;二是broker未注册到NameServer,用mqadmin clusterList -n localhost:9876验证;三是生产者与服务器网络或端口不通,用ping和telnet排查后联系运维开通权限。
- grep topicName=xxx查broker.log确认topic是否真的存在
- autoCreateTopicEnable=true可开启broker自动创建topic
- mqadmin clusterList -n localhost:9876验证broker注册状态
- 生产者连不通时用ping或telnet检查网络与端口权限
RocketMQ在发送消息的时候,提示:MQClientException: No route info of this topic xxx
错误提示是说,没有xxx这个topic.
出现topic不存在,主要有以下三种情况导致的:
第一种:broker中真的没有xxx这个topic.
可能原因:Broker模块不支持自动创建topic,并且xxxtopic也没有被手动创建多
第二种:borker模块没有正确连接到NAMESRV
第三种:发送者没有连接到NAMESRV
知道了产生原因,我们就来解决办法:
第一种情况查看topic是否正的存在。可以登录rockermq控制台查看:

可以搜索
原创不易,完成人机校验,阅读全文
常见问题
RocketMQ提示No route info of this topic怎么办?
先在MQ服务器执行cat ~/logs/rocketmqlogs/broker.log | grep topicName=你的topic确认是否存在;不存在则设置autoCreateTopicEnable=true或手动创建;存在仍报错时,检查broker是否注册到NameServer、生产者到服务器的网络端口是否连通。
如何确认broker已正确连接NameServer?
两种方式:查看broker日志,cat ~/logs/rocketmqlogs/broker.log | grep register出现注册成功内容即正常;或在MQ安装目录执行mqadmin clusterList -n localhost:9876,能列出集群信息说明连接正常。