如何知道MQ已消费完所有消息

2025-07-10 11:39:46

1、方案1、打标,就是在生产消息的时候把最后一条数据打标,从而在消费的时候能知道哪一条数最后一条数据,当执行完该条数据时,就可以进行数据落地操作,但是考虑到MQ是集群部署的,也就是说可能是乱序的,此方案适用于MQ为顺序队列的。

2、方案2、监听器,监听消费端的某个必执行的方法范围时间内是否被调用,如果未被调用则可认定为已经消费完。前后考虑此方案可行。

3、方案3、检查生产、消费的数量,需要对生产及消费进行incr计数,当消费总数等于生产总数时,就可以认定消费已完成,最终确定此方案也OK。由于工期问题,我选择的是方案3,同时方案3有几个地方需要注意1、生产计数要在生产完所有消息后才能进行计数。2、需要考虑消息丢失、重复消费的问题,最后我是用异步来处理数据落地的时机的。其实我更认为方案2可靠性更高,但是考虑到改动的范围有点大,最后没有考虑方案2.欢迎大家找茬。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢