当前位置: 首页 > 知识库问答 >
问题:

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

柳俊逸
2023-03-14

我并不是在寻找API来完成这个内部实现细节。

我知道最新版本的Kafka在一个特殊的Kafka主题__consumer_offset中为消费者群体存储偏移量。

我的问题是:

这个主题中的数据结构到底是什么?

当一个消费者群体死亡并出现时,Kafka如何在Topic Partitions中查找该消费者群体上次消费的偏移量?

就我的理解而言,Kafka主题不适合查找数据:例如:用于查询,例如:

从__consumer_offset中选择*偏移量*,其中消费者组名称=*消费者组*和主题=*主题-1*

基本上,我想知道__consumer_offset的内部细节或任何用于消费抵销管理的内容。

我看了这个https://cwiki.apache.org/confluence/display/KAFKA/Offset管理的维基页面,但是看不懂内存中的数据结构部分。

共有1个答案

蒋奕
2023-03-14

在__consumer_offsets主题中,每个使用者组都根据其散列被分配了一个特定的分区。

然后,将偏移量简单地写成__consumer_offsets主题的消息。

为了防止这个主题变得太大,定期删除给定消费者组的旧偏移量。

对于读取,Kafka代理将这些数据作为启动的一部分加载到内存中,这样每次对偏移量的请求都不会导致磁盘I/O。由于只有最新的偏移量被频繁访问,在正常操作中,这并不意味着要在内存中保存多少数据。

 类似资料:
  • 在一个消费者群体中的所有消费者都失败后,kafka会将该消费者群体的补偿存储多长时间?是否有此配置变量?

  • 我们在Kubernetes中基于<code>gcr.io/google_containers/Kubernetes-Kafka:1.0-10.2.1</code>docker映像运行一个Kafka集群,使用<code>gcr.io/google_containers/Kubernetes-zookeeper:1.0-3.4.10</code>,使用三个Kafka和zookeer实例。 我们有几个不

  • 在Kafka中创建主题后,您可以创建任意数量的消费者组,只需尝试使用这些组来阅读主题。 我想创建一个额外的消费者组来监控真实消费者组的消息内容——一个用来偷看他们消息的组。因此,GUI会让您单击任何消费者组的“偷看”,“偷看”组的偏移量将更新为被监控组的偏移量,然后它会向您显示该偏移量中的消息。 不过我很困惑,因为你不能在第一次就明确地创建一个消费者群体。您似乎必须阅读一条消息才能获得在动物园管理

  • 我是Kafka的新手,正在学习Kafka内部知识。请根据需要随时更正我的理解。。 这是我的实时场景..感谢所有的回复: 我有一个接收数据文件的实时FTP服务器…比如索赔文件。 我将把这些数据发布到一个主题中.让我们把这个主题称为claims_topic(2个分区). 我需要订阅这个claims_topic,阅读消息并将它们写入Oracle和Postgres表。让我们将oracle表称为Otable

  • 我有一个kafka主题,有25个分区,集群已经运行了5个月。 根据我对给定主题的每个分区的理解,偏移量从0,1,2开始...(无界) 我看到log-end-offset值很高(现在- 我创建了一个新的消费群体,偏移设置为最早;因此,我预期该消费者组的客户端将从偏移量0开始的偏移量。 我用来创建一个偏移量为最早的新消费者组的命令: 我看到正在创建消费者组。我预计当前偏移量为0;然而,当我描述消费者组

  • 我有一个包含多个Kafka作品的资源库。我想将其中一个流提取到它自己的存储库中。但是,我不确定如何处理那个流的消费群体。我的意思是:在新的存储库中,流将有一个不同的< code>application.id。据我理解,消费者组的名称是基于< code>application.id设置的。如果我简单地关闭旧流,对于每个主题的每个分区,新流将从第零个偏移量开始,而不是从旧流停止的偏移量开始。这将导致输