存储offset是一个什么概念?
来源:5-5 Offset存储讲解

_LJ
2019-09-09
是存储消费者对应的消费偏移量这个概念吗?
就像kafka中使用名为__consumer_offset的topic来存储各个consumer group对应的消费进度
写回答
1回答
-
阿神
2019-09-12
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一致性的扩展,用于做主从切换,保证一致性等等。022020-07-30
相似问题