当前位置:   article > 正文

【RocketMQ】Send [1] times, still failed以及No route info of this topic问题排查思路总结_org.apache.rocketmq.client.exception.mqclientexcep

org.apache.rocketmq.client.exception.mqclientexception: send [1] times, stil

1. 检查MQ是否正常启动

RocketMq的日志默认位置:

cd  ~/logs/rocketmqlogs
  • 1

在这里插入图片描述
在这里插入图片描述
说明正常启动了NameServer
在这里插入图片描述
说明正常启动了NameServer在这里插入图片描述
说明broker已经注册到了NameServer

2. 检查端口是否可以正常访问

在windows环境下运行下面命令

telnet  ip 9876
telnet  ip 10911
  • 1
  • 2

其中9876是NameServer默认端口,10911是broker的端口

3 检查topic是否存在

第一种情况是topic确实不存在,可以查看broker的日志确定topic是否真的存在。
登录MQ所在的服务器,执行如下命令(把recommend换成你的topic名称)

cat ~/logs/rocketmqlogs/broker.log  | grep topicName=recommend
  • 1

出现如下内容说明topic已经存在

如果没有出现以上内容,说明topic确实不存在。可以通过自动创建topic或手动创建topic解决

自动创建topic:启动broker时加上自动创建topic的参数,如下,其中autoCreateTopicEnable=true表示自动创建topic

nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true > ../broker.log &
  • 1

手动创建topic:进入mq的安装目录 ,执行如下命令创建topic。

mq安装的相对目录是
rocketmq-all-4.4.0/distribution/target/apache-rocketmq/bin

以下命令创建了一个名称是orderPay的topic

sh mqadmin updateTopic -b localhost:10911 -t orderPay
  • 1

第二种情况出现的概率较低,可以采用以下两种方式确认

  1. 查看broker的日志,出现如下内容,说明连接成功。

查看日志命令 cat ~/logs/rocketmqlogs/broker.log | grep register

  1. 在mq的安装目录执行如下命令
sh mqadmin clusterList -n localhost:9876
  • 1

出现如下内容说明连接成功,没有问题

在这里插入图片描述

4. Broker的IP地址错误,造成网络不通

我在通过nohup sh bin/mqbroker -n localhost:9876 &命令启动mqbroker 的时候,显示注册成功,当时并没有注意这个IP地址,随后在通过程序测试时一直显示消息发送失败,随后我通过Debug异常信息,在下面这一段代码时我发现了问题,这里的addr变量,就是mqbroker 的地址,本来我的Broker是192.168网段的,但是addr显示的却是172网段,导致二者之间网络不通无法发送消息,随后我通过下面命令查看了mqbroker 的注册信息
在这里插入图片描述

sh mqadmin clusterList -n localhost:9876
  • 1

通过该命令我发现broker的地址确实有误,broker和NAMESRV是放在一台机器上的,但是服务器是虚拟构建出来的,至于为什么会显示172网段还不清楚,但是至少问题找到了,现在就需要指定broker配置时的IP设置
在这里插入图片描述
这里我们就需要修改RocketMQ的 broker 的地址,注意这里首先关闭broker
进入到broker 安装目录,红色部分就是配置文件
在这里插入图片描述

# 配置IP地址
echo "brokerIP1=192.168.208.32" > broker.properties

# 首先停止MQ服务
./bin/mqshutdown broker
./bin/mqshutdown namesrv
#启动 mqnamesrv 
nohup sh bin/mqnamesrv &
#重点:mrbroker 启动时通过 -c 加载配置文件
nohup sh bin/mqbroker -n 127.0.0.1:9876 -c /home/rocketmq/rocketmq-rocketmq-all-4.6.0/distribution/target/rocketmq-4.6.0/rocketmq-4.6.0/broker.properties &

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

重新启动后,再次查看Broker注册信息

在这里插入图片描述
再次运行程序,已经可以正常生产和消费信息

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/256938
推荐阅读
相关标签
  

闽ICP备14008679号