码迷,mamicode.com
首页 > 其他好文 > 详细

RocketMQ部分数据消费不了问题排查

时间:2018-05-17 12:06:46      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:strong   fda   忘记   href   命令行   是什么   过程   AC   consumer   

技术分享图片

问题现象

今天忽然收到RocketMQ预警信息如下:

技术分享图片

提醒有部分数据没有消费,产生堆积情况。

打开RocketMq-Console-Ng查看如下图形式:

技术分享图片

备注:第一反应是Consumer Group内订阅了多个topic?(为什么这么怀疑,下次分析)。

通过命令statsAll 作用是查询Topic and Consumer tps stats

sh mqadmin statsAll -n namesrv

发现没有问题,很奇怪?还好之前源码看过,只能调试源码了。

源码调试

本篇不重点讲解源码过程,后续有空再慢慢分析源码部分,消费端为了实现负载均衡器,每次当有结点添加或者减少都会重新doRebalance,默认选择的就是获取所有队列以及得到对应group下面所有的cidAll(所有的消费端),之后类似于分页操作差不多……

进行断点到该位置发现奇怪现象:

技术分享图片
看到这里就明白了为什么RocketMq-Console-Ng查看下面很多是空白的没有消费端了,由于cidAll的0、2、3一样一共有16个队列,cidAll显示4个 那么每个客户端应该是分配4个的,但是由于0、2、3都一样 就分配一次的。

源码部分:

技术分享图片

备注: 现象是什么大概清楚了,下面的重点是为什么会出现这样的情况呢?

问题排查

通过RocketMQ命令查询结果还是一样:

技术分享图片
看到这里让我不禁怀疑是否消费实例启动多次,查看代码依然没有,实在没办法偶然查看了下tomcat的配置,惊喜的发现:
技术分享图片
与该使用方交流发现是的确是没有重启部署了,重启问题解决。

待解决

回头看看为什么会这样,RocketMQ很多流程有点忘记了,抽空再过一遍,把这个问题梳理下。

天仅仅只是开始,期待你的持续关注,让我们一起走进rocketmq的世界!!!

往期rocketmq系列文章


如果读完觉得有收获的话,欢迎点赞、关注、加公众号【匠心零度】,查阅更多精彩历史!!!

加入知识星球,一起探讨!

技术分享图片

RocketMQ部分数据消费不了问题排查

标签:strong   fda   忘记   href   命令行   是什么   过程   AC   consumer   

原文地址:https://www.cnblogs.com/lirenzuo/p/9049175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!