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

 时间:2024-10-12 20:54:02

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

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

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

  • 原神无名遗迹华丽的宝箱怎么拿
  • 清籁岛石板怎么踩
  • 中量血浆RNA浓缩
  • 原神温迪推荐使用圣遗物
  • 如何计算一组数值的几何平均数
  • 热门搜索
    冰雹是怎么形成的 苹果手机壁纸图片大全 绕口令大全 怎么有效去黑头 油条怎么做好吃又松软 煤气灶打不着火原因和处理方法 队名和口号大全 二四六免费资料大全 名人读书方法 电器着火怎么办