Apache kafka “这个话题是什么?”__“消费者补偿”;在卡夫卡
当我运行这个命令时,我得到两个主题。我知道我创建了测试主题,但我看到了一个额外的主题,名为“消费者偏移”。 从名称上看,它意味着它与消费者补偿有关,但它是如何使用的Apache kafka “这个话题是什么?”__“消费者补偿”;在卡夫卡,apache-kafka,Apache Kafka,当我运行这个命令时,我得到两个主题。我知道我创建了测试主题,但我看到了一个额外的主题,名为“消费者偏移”。 从名称上看,它意味着它与消费者补偿有关,但它是如何使用的 $bin/kafka-topics.sh--列表--zookeeper本地主机:2181 __消费者补偿 测试 $ bin/kafka-topics.sh --describe --zookeeper localhost:2181 Topic:__consumer_offsets PartitionCount:50
$bin/kafka-topics.sh--列表--zookeeper本地主机:2181
__消费者补偿
测试
$ bin/kafka-topics.sh --describe --zookeeper localhost:2181
Topic:__consumer_offsets PartitionCount:50 ReplicationFactor:1 Configs:segment.bytes=104857600,cleanup.policy=compact,compression.type=producer
Topic: __consumer_offsets Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: __consumer_offsets Partition: 1 Leader: 0 Replicas: 0 Isr: 0
*
*
*
Topic: __consumer_offsets Partition: 48 Leader: 0 Replicas: 0 Isr: 0
Topic: __consumer_offsets Partition: 49 Leader: 0 Replicas: 0 Isr: 0
这在Kafka 1.1.0中发生,为什么有50个分区。
还正在寻找一种禁用此功能的方法,因为每次我尝试运行“描述”主题时,它都会先打印50个“消费者”偏移分区,然后再打印我的主题。消费者基于消费者组id将上次消费的消息偏移id存储在kafka topic
\uu消费者偏移中。
这使不同的消费者(显然具有不同的消费者id)能够在上次消费的消息之后处理下一条消息,并避免重复的消息处理。消费者使用主题\u consumer\u offset
存储他们读取的消息的偏移量。当耗电元件重新启动时,它将启用恢复。它将读取耗电元件停机前的最后一个位置,并处理下一个偏移量
@cricket_007是对的,在卡夫卡中,默认情况下可以有重复,这是使用的至少一次语义 在卡夫卡的初始版本中,偏移量由zookeeper管理,但随着时间的推移,卡夫卡不断发展,引入了许多新功能。现在,卡夫卡在一个内部/系统级主题中管理偏移量,即消费者偏移量
每当您在没有明确指定分区数的情况下创建一个主题时,Kafka就会默认为该主题创建50个分区。这同样适用于主题“消费者偏移量”。知道为什么有50个分区吗分区的数量由卡夫卡配置中的offset.topic.num.partitions
选项决定。50是默认值,但您可以更改它。我不会说“避免重复”,因为默认情况下,您至少会获得一次交付,如果在处理后未提交偏移,您将获得重复的。。。相反,偏移量主要是为了恢复/检查点而存储的。您可以查看它的可能副本。。。链接部分解决了这个问题。我甚至没有看到_模式主题。