各位大佬,我想问下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的最大偏移量作为保存点
也有进度, 只是这个进度是broker根据client ack后自己算的,这种逻辑从client 到 broker了,1消息如果太久没有ack, 就会重试, 进入重试队列。 此时normal topic中下一个应该被消费的消息是4(此答案整理自群2-Apache RocketMQ 中国开发者钉钉群)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。