RocketMQ发送消息失败排查
RocketMQ发送消息失败排查
错误信息:
RocketMQ Message hasn't been sent. Caused by Send [1] times, still failed, cost [1982]ms, Topic: course-log-topic, BrokersSent: [broker-a]
错误截图:
(一)查看消费者情况
# 查看命令mqadmin consumerProgress -n localhost:9876
查看结果:
说明:发现对应的订阅组已经离线(查看对应的项目MQ地址和配置都是正确的),然后从服务日志中也看不出更多的问题
(二)调整服务日志
说明:调整服务日志级别到info,通过详细的日志信息定位发送失败的原因
日志截图:
说明:日志不断打印closeChannel: close the connection to remote address[] result: true
排查思路
- mq端口配置是否配置正确 或者说 rocketmq是否启动正常
- rocketmq broker ip主机 brokerIP 是否配置正常
- 网络是否正常
1、通过netstat -ntlp
查看mq端口是否存在
发现MQ服务是正常启动的,端口也在
2、查看MQ的brokerIP
# 查看broker配置sh ./bin/mqbroker -m
查看截图:
通过ifconfig
查看服务器IP
说明:发现MQ的brokerIP默认使用了第一张网卡docker0,而不是eth0的网卡,导致服务通过IP无法访问发送
解决方案:在配置文件conf/broker.conf
中通过brokerIP1=X.X.X.X(访问IP)
指定brokerIP
配置截图:
注意事项:
说明:
如果是集群需要配置brokerIP1、brokerIP1
默认不配置brokerIP1和brokerIP2时,都会根据当前网卡选择一个IP使用,当你的机器有多块网卡时,很有可能会有问题。比如,我遇到的问题是我机器上有两个IP,一个公网IP,一个私网IP,结果默认选择的走公网IP,这是不正确的,我期望的是所有业务内部通信都走内网。
- brokerIP1:当前broker监听的IP
- brokerIP2:存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步
来源地址:https://blog.csdn.net/qq_27354909/article/details/129261381
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341