开发者社区 > 云原生 > 容器服务 > 正文

因为外在因素导致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 364 0
1 条回答
写回答
取消 提交回答
  • image.png 也有进度, 只是这个进度是broker根据client ack后自己算的,这种逻辑从client 到 broker了,1消息如果太久没有ack, 就会重试, 进入重试队列。 此时normal topic中下一个应该被消费的消息是4(此答案整理自群2-Apache RocketMQ 中国开发者钉钉群)

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

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

相关产品

  • 容器服务Kubernetes版
  • 相关电子书

    更多
    ACK集群类型选择最佳实践 立即下载
    如何为乾象节省月10W+云成本 – ACK FinOps套件 立即下载
    ACK 稳定性产品能力和最佳实践——助力企业优化阿里云上成本 立即下载