ROCKETMQ

【已解决】RocketMQ在发送消息的时候,提示:MQClientException: No route info of this topic

RocketMQ在发送消息的时候,提示:MQClientException: No route info of this topic xxx

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

5846d1ba3a6be8b26b564e9e87b3bac4.png错误提示是说,没有xxx这个topic.

出现topic不存在,主要有以下三种情况导致的:

第一种:broker中真的没有xxx这个topic.

可能原因:Broker模块不支持自动创建topic,并且xxxtopic也没有被手动创建多

第二种:borker模块没有正确连接到NAMESRV

第三种:发送者没有连接到NAMESRV

知道了产生原因,我们就来解决办法:

第一种情况查看topic是否正的存在。可以登录rockermq控制台查看:

f14cdad81c3a90b49fc260d0ef5c4612.png

可以搜索

原创不易,完成人机校验,阅读全文

常见问题

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,能列出集群信息说明连接正常。

相关推荐