因为外在因素导致ack消息是晚于其他消费者的,那这个消费进度是咋更新的?

各位大佬,我想问下RocketMQ5.0里面新增的pop消费模型具体实现细节,pop出一条消息之后,等待ack消息返回,如果收到ack消息之后,移除buffer中的checkpoint信息,更新消费进度。多个消费者去消费同一个topic下的同一个Queue,如果先获取到消息的消费者,因为外在因素导致ack消息是晚于其他消费者的,那这个消费进度是咋更新的? pop模型的这个消费进度的更新有点没太理解,像push模型消费完消息之后,客户端会将topic下Queue的消费偏移量发送到broker保存落盘,只不过push模型下,如果存在多个线程消费耗时不一样的情况,是获取的最小的那个偏移量,比如是:线程1消费的是1-10的消息,线程2消费的是11-20,线程3是21-30,线程1和3消费完成了,则会把线程1的最大偏移量作为保存点

展开
收起
游客6vdkhpqtie2h2 2022-09-29 10:32:06 374 分享 版权
1 条回答
写回答
取消 提交回答
  • image.png 也有进度, 只是这个进度是broker根据client ack后自己算的,这种逻辑从client 到 broker了,1消息如果太久没有ack, 就会重试, 进入重试队列。 此时normal topic中下一个应该被消费的消息是4(此答案整理自群2-Apache RocketMQ 中国开发者钉钉群)

    2022-09-29 11:05:56
    赞同 展开评论

国内唯一 Forrester 公共云容器平台领导者象限。

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理