no route info of this topic

生产变更报了这个错误,百度了一下报这个错主要分为以下三种情况:

1.Broker模块不支持自动创建topic,并且topic没有被手动创建过

解决方案:在broker(mq)服务器上修改参数,使其可以自动生成

autoCreateTopicEnable=true

2.Broker模块没有正确连接到namesrv

解决方案:使用相关命令去搜索(这种情况出现概率很低,一般是nameser地址没有配置正确)

sh mqadmin clusterList -n localhost:9876

3.发送者(producer/生产者)没有连接到NAMESRV

解决方案:最大可能是发送者和mq服务器之间的网络或端口不通,可以使用ping或者telnet确定问题。如果ping或者telnet连接不通,需要联系运维工程师开通网络或端口权限

如果是自己的服务器,关一下防火墙

systemctl stop firewalld.service

我自身的情况稍微特殊一点

本次只是调整了代码逻辑,情况1和2可能性几乎为0,顺着发送者(producer/生产者)没有连接到namesrv的思路去看,发现mq逻辑并没有改动,但是有几个jar包的新增,jar里面有同名同路径的类(公司针对不同的mq重新写了自己的jar包,入口方法名称有同名同路径的类问题),他们取用的namesrv地址的配置参数名称不一样(也就是没有连接到namesrv),去掉了这个有同名同路径的类jar包,重启解决问题。

记一点:变更已经上线的应用,jar不能随意更新,即使没有用到,在加入过后也可能发生同名类导致的各种问题

 文章借鉴于

Rocket MQ报错No route info of this topic的解决办法 - 知乎

RocketMQ 解决 No route info of this topic 异常步骤_IT农场-CSDN博客

你可能感兴趣的:(springboot,rabbitmq)