消息丢失如何排查?
当我们在使用mq的时候,经常会遇到消息消费异常的问题,原因有很多种,比如
-
producer发送失败
-
consumer消费异常
-
consumer根本就没收到消息
「那么我们该如何排查了?」
其实借助RocketMQ-Dashboard就能高效的排查,里面有很多你想象不到的功能
首先我们先查找期望消费的消息,查找的方式有很多种,根据消息id,时间等
「消息没找到?」
说明proder发送异常,也有可能是消息过期了,因为rocketmq的消息默认保存72h,此时到producer端的日志进一步确认即可
「消息找到了!」
接着看消息的消费状态,如下图消息的消费状态为NOT_ONLINE
「NOT_ONLINE代表什么含义呢?」
别着急,我们一步步来分析,先看看TrackType到底有多少种状态
public enum TrackType {
CONSUMED,
CO