在Zookeeper客户端中如何查找组ID /主题的偏移量?

时间:2015-01-08 17:24:29

标签: apache-zookeeper apache-kafka

我们正在使用Kafka 2.10和zookeeper 3.4。 关于http://kafka.apache.org/08/documentation.html#distributionimpl的信息,我试图查找组ID,主题分区的偏移量,但发现偏移量为空: ls / consumers / test6 / offsets / ViewerLogs / 0 --->返回[]

有关如何访问该值的任何建议吗?

由于

2 个答案:

答案 0 :(得分:4)

要获取偏移值,请在zookeeper中运行命令get / consumers / test6 / offsets / ViewerLogs / 0

答案 1 :(得分:1)

看一下这个文件:

https://cwiki.apache.org/confluence/display/KAFKA/Kafka+data+structures+in+Zookeeper

因此,偏移量将存储在Zookeeper中:

/ [clusterBasePath] / consumers / [groupId] / offsets / [topic] / [partitionId] - >长(抵消)

如果该znode为空,则可能意味着您的使用者组尚未拥有分区(决定从分区到使用者的映射)。

要查看使用者组中的当前分区所有者,请查看:

/ [clusterBasePath] / consumers / [groupId] / owners / [topic] / [partitionId] - > string(consumerId)

从个人经验来看,最常见的原因是您的消费者群体由于超时而无法拥有分区。在您的使用者配置中,您可能希望尝试将rebalance.max.retries增加到类似50(或更高)和rebalance.backoff.ms到类似5000.同样,检查您的Zookeeper会话超时并在必要时增加它们。

根据您正在使用的消费者(您是否正在使用消费者群体?),您也可能不会将您的抵消权交给Zookeeper(如果您不太在意,这是可以的。容错)。在这种情况下,您将无法在Zookeeper中找到偏移量,并且需要直接从您的消费者那里获取它们。