此队列特征延迟消费,约定*分钟时间没到重新入队。
在此期间消息丢失,导致不能正常被消费。
一、问题分析:
- tcp协议非常可靠,不可能是异常丢消息。
- 队列中只有特定内容的消息出现异常丢失,网络也并无异常
- 初步怀疑有人故意消费
二、问题排查:
业务提供:1、出现问题的消息内容; 2、队列名;3、消费详情
服务日志:1、由于服务端只记录写入消息,并不记录写入源于,消费源
2、排查发现写入(服务端日志写入队列数目)的总比正常消费(业务提供消费数目)的多一天。
3、抓包获取消费ip
抓包分析详情如下:
1、tcpdump -i eth1 -s0 -w test.pcap port XXXX,(注意添加port,要不然抓的包会很大)
2、使用wireshark检索关键字(丢失消息关键字)查看:
3、发现异常ip,定位问题,果然有人在偷偷消费。
三、结论:
1、这个问题虽然很简单,但是是需要业务方与dba相互配合完成的,缺一不可。
2、我们需要完美的结合tcpdump与Wireshark相关工具进行辅助,不得不说wireshark的检索功能很赞。值得学习