采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
是存储消费者对应的消费偏移量这个概念吗? 就像kafka中使用名为__consumer_offset的topic来存储各个consumer group对应的消费进度
offset你可以理解为就是每一个文件的偏移量,是以字节为单位的。关于store存储这块其实比较复杂,建议小伙伴去看看相关的资料或分析文章。在这里本神简单和小伙伴说一下。 rmq对存储大体上可以分三大类形式,一为真实的message存储文件commitlog,二则为commitlog的索引文件consumequeue,consumequeue主要就是记录每一个消息的具体位置的,其内部数据每一条就是20个字节的数据,前八位是在commitlog的offset的起始位置,然后是4位的size,也就是这个消息的大小长度(size),最后8位是一个根据该消息的订阅tag的一个hashcode值。我们消费端可以通过对consumequeue的读取从commitlog中找到其真正的消息内容,然后就是一个index文件,主要做查询使用的,比如根据key或者时间等进行搜索消息。还有其他具体的内容比如消息如何转储,如何进行备份,新版本4.5.0以后又加入了DLedger,他是commitlog的子类,做了rafty一致性的扩展,用于做主从切换,保证一致性等等。
像这种知识点,没有清晰的动态图,我们很难理解
老师您说:"rmq对存储大体上可以分三大类形式,一为真实的message存储文件commitlog,二则为commitlog的索引文件consumequeue" 那么第三大类形式是什么样的呢?
登录后可查看更多问答,登录/注册
理论+实战,系统掌握RocketMQ核心技术, 挑战高并发抗压实战
10.0k 15
1.2k 11
1.0k 7
1.1k 6