了解kafka结束偏移量和提交偏移量

wj8zmpe1  于 2021-06-05  发布在  Kafka
关注(0)|答案(2)|浏览(704)

我想使用pyhon和kafka客户机获取kafka主题的提交偏移量和结束偏移量(位置),
我想知道为什么topic+consumergroup会收到补偿( KafkaAdminClient.list_consumer_group_offsets(consumer_group) )
当消费者+主题的分区( KafkaConsumer.end_offsets(partitions) ).
有人有线索吗?

zzwlnbp8

zzwlnbp81#

我不完全理解这个问题,但是两个调用都以相同的方式返回相同的信息,但是分区的数量可能不同。所以这两种方法都用在不同的场景中。
list_consumer_group_offsets(group_id, group_coordinator_id=None, partitions=None) 您还可以限制一组分区而不是所有分区的返回。基本上,这个调用没有上下文,因此需要将使用者组作为参数传递。
Kafka消费者有一个消费群体和主题是通过建设。与另一个调用的区别在于,该调用只过滤特定使用者正在从中消费的主题。
同样,这两种方法都返回非常相似的数据,但在不同的场景中都很有用。
python文档非常清楚,但是您必须理解kafka是如何在内部工作的,因为它有点复杂。api不会以任何方式说明Kafka是如何使用的。

gzszwxb4

gzszwxb42#

概念 committed 只有在有消费群体时才会出现。因此,你要求承诺的补偿这一点就意味着存在一个消费群体。使用者组包含主题及其分区的详细信息。
然而, end offsets 无论是否存在消费者群体,都使用该术语。这就是为什么编写函数来接受主题分区列表的原因。
有时可能不需要使用消费者群体,但我们只想看看主题中的内容。在这种情况下,我们不创建消费者组,而是将主题分配给消费者,然后像我们使用的那样阅读它们 kafka-console-consumer 为了。
例如,我们使用 kafka-console-consumer 用于读取最后n条消息或显示主题信息。

相关问题