首页 > 解决方案 > 消费者偏移是在消费者组级别还是在该消费者组内的单个消费者管理?

问题描述

我试图找出在消费者群体层面是否也有任何抵消。Consumer Offset 是在消费者组级别还是在 Kafka 中该消费者组内的单个消费者?

标签: apache-kafkakafka-consumer-api

解决方案


在 ConsumerGroup 级别跟踪偏移量。

想象一下,您在一个 ConsumerGroup 中有 4 个消费者线程从一个具有 4 个分区的主题中消费。如果您现在停止所有 4 个线程并仅重新启动具有相同组的单个线程,则一个线程将知道所有 4 个线程停止消耗的位置并从那里继续。


“你是说一个偏移量(基本上是一个共享的 int/long 值)将由一个消费者组中的所有消费者共享/更新?”

是的,这是正确的。请记住,主题的单个分区只能由组中的一个消费者线程读取。同一个 ConsumerGroup 的两个消费者线程永远不会同时消费一个主题分区。消费者组的偏移量存储在名为 的内部 Kafka 主题中__consumer_offsets。在本主题中,您基本上有一个键/值对,其中您的键基本上是

  • 消费者组
  • 话题
  • 主题内的分区

你的价值就是偏移量。此内部__consumer_offsets主题可供所有消费者使用,因此信息是共享的。


推荐阅读