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

 时间:2026-02-16 15:18:10

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

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

3、方案3、检查生产、消费的数量,需要对生产及消费进行incr计数,当消费总数等于生产总数时,就可以认定消费已完成,最终确定此方案也OK。

由于工期问题,我选择的是方案3,同时方案3有几个地方需要注意

1、生产计数要在生产完所有消息后才能进行计数。

2、需要考虑消息丢失、重复消费的问题,最后我是用异步来处理数据落地的时机的。

其实我更认为方案2可靠性更高,但是考虑到改动的范围有点大,最后没有考虑方案2.

欢迎大家找茬。

  • 原神无名遗迹华丽的宝箱怎么拿
  • 清籁岛石板怎么踩
  • 中量血浆RNA浓缩
  • 原神温迪推荐使用圣遗物
  • 如何计算一组数值的几何平均数
  • 热门搜索
    小学消防安全手抄报 安全教育手抄报大全 廉洁修身手抄报 万圣节手抄报内容 英语手抄报黑白 没有字的手抄报 健康安全手抄报 社会实践手抄报 美丽的春天手抄报图片 安全手抄报的资料