卡法:Kafka如何存储和检索每个消费群体的抵消?

2uluyalo  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(312)

我并不是在寻找api来完成这个相当内部的实现细节。
我知道Kafka的最新版本在一个特别的Kafka主题“消费者补偿”中为消费者群体存储补偿。
我的问题是:
本主题中的数据结构到底是什么?
当一个消费群体死亡并出现时,Kafka如何查找主题分区中的偏移量,直到该消费群体上次消费为止?
据我所知,kafka主题不适合查找数据:例如:用于以下查询: Select *offset* from __consumer_offset where consumer-group-name=*consumer-group* and topic=*topic-1* 基本上,我想知道消费者抵消或任何用于消费者抵消管理的内部细节。
我读了这个维基页面https://cwiki.apache.org/confluence/display/kafka/offset+management ,但无法理解内存中的数据结构部分。

bakd9h0s

bakd9h0s1#

每个使用者组都会根据其哈希值在\uu consumer\u offsets主题中分配一个特定分区。
然后,偏移量被简单地作为消息写入到\uu consumer\u offset主题。
为了防止此主题变得过大,定期删除给定消费群体的较旧偏移量。
对于读取,kafka代理将此数据加载到内存中,作为启动的一部分,这样每个偏移请求都不会导致磁盘i/o。因为只有最新的偏移量经常被访问,所以在正常操作中,这并不意味着要在内存中保存多少数据。

相关问题