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

排查思路

  1. mq端口配置是否配置正确 或者说 rocketmq是否启动正常
  2. rocketmq broker ip主机 brokerIP 是否配置正常
  3. 网络是否正常

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来同步
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值