RocketMQ消费者如何消费消息以及ack

1.前言

此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂

这篇文章紧挨着上一篇博客来进行编写,有些不清楚的可以看下上一篇博客:

https://blog.youkuaiyun.com/u013127325/article/details/144934073

2.broker是如何将消息读取出来给消费者的

当消费者发送拉取消息的请求给Broker之后,Broker会找到topic下的MessageQueue中的ConsumeQueue中的找到消息的offset地址,然后根据offset地址从commitLog中进行获取消息的数据信息。最后把消息信息返回给消费者。

当我们的消费者消费完成消息之后,就会提交一个消费进度到Broker上去,broker就会存放我们的消费进度信息, 下次拉取消息的时候,就从这个位置开始进行拉取消息,不会从头开始拉取消息了。整体流程如下图所示:

3.broker读取消息的优化

consumeQueue也是基于OS cache来进行优化的,磁盘上有大量的ConsumeQueue文件,在写入文件的时候会优先写入os cache,os也有自己的一个优化机制,就是读取一个磁盘文件的时候,也会将一些数据缓存到os cache中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小园子的小菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值