RocketMQ顺序消费模式下消息堵塞问题排查处理

0、查看RocketMQ控制台,如下图,消息延迟为80,表名目前有80条消息未被正常消费,所以消息到达了消费端,需要排查消费端原因,因为我们使用的顺序消费模式,所以判断某个队列内有消息未返回正常的消费状态导致该队列之后的所有消息处理堵塞排队的状态。

 

1、ps -ef | grep java 查看消费者服务占用的 pid

2、jstack pin > 1.log 把服务上的线程状态输出到当前目录下的1.log

3、查看线程日志文件

 2步骤中的命令多执行几次,如果某个线程一直处理RUNNABLE状态,说明此线程一直被占用,如上图所示,执行多次后 ConsumeMessageThread_2 一直处于RUNNABLE 状态,根据调用栈可以看出具体的业务代码行数,我的问题出现在请求第三方服务的HTTP请求中,经排查,此请求未设置HTTP请求的超时时间,导致请求线程不能释放,而消费者是实现了MessageListenerOrderly的顺序消费队列,此消息未被正常消费导致队列内的所有后面的消息都堵塞了。

设置了HTTP请求超时时间后,消息消费正常。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值