我在一个使用者组中有两个使用相同kafka主题分区的使用者。我希望从消费者B中得到消费者A的最后读取偏移量。任何想法,如何实现这个?
答案 0 :(得分:2)
永远不会将单个分区分配给同一组中的两个使用者实例。
您可以使用以下脚本来了解上次消耗的偏移量
sh kafka-consumer-groups.sh --bootstrap-server localhost:9092 --new-consumer --group groupname --describe
答案 1 :(得分:1)
Kafka商店抵消(消费者群组ID,主题,分区)所以首先要注意的是从卡夫卡的角度来看,没有“消费者A的最后读取偏移”之类的东西。使用Kafka使用者API可以获得的所有信息都是针对给定的(组,主题,分区)。消费者API中有两种方法可能有用。
commited():获取给定分区的最后一次提交的偏移量(无论此进程是否发生了提交)。
position():获取将要获取的下一条记录的偏移量(如果存在具有该偏移量的记录)。
如果这不是您所需要的,那么您将不得不自己实施。假设您已经知道如何从消费者A获取最后一次偏移读取,那么消费者A应该将该值存储在消费者B可用的某个位置。这个位置可能是
答案 2 :(得分:1)
在 kafka-> bin 中使用以下命令,使用 groupId 更改您的组ID:
sh kafka-consumer-groups.sh --bootstrap-server localhost:29092 --group groupId --describe
您将得到如下输出:
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
topic1 0 0 35 35 - - -
topic2 0 1600 1600 0 - - -