获取消息计数和Java中每个主题分区的最后偏移量

时间:2019-01-22 12:01:15

标签: apache-kafka

使用Admin Client以Java代码与Kafka通信。我们可以针对特定主题执行所有CRUD操作。我们的新要求是获取主题的消息数,主题的所有消息的大小,主题的每个分区的最新偏移量。

输入:经纪人列表和主题 5个分区的预期输出如下所示

{
  "total": 10,
  "partitions": [
    3,
    2,
    1,
    3,
    1
  ],
  "offsets": [
    10,
    9,
    9,
    11,
    12
  ]
}

总计是消息的大小(以字节为单位)。

尝试使用使用者组ID。在这里,仅当主题被消耗时,我们才能获取数据。无论主题是否被消耗,我们都希望获取主题详细信息。

请提出可能的建议

1 个答案:

答案 0 :(得分:2)

使用命令行,您可以通过以下方式收集主题的每个分区的偏移量:

kafka%~ bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic mytopic1 

它将返回每个分区的偏移量,如下所示:

mytopic1:2:828012
mytopic1:1:827041
mytopic1:3:829577
mytopic1:0:829184

在这里您可以参考更多详细信息: https://cwiki.apache.org/confluence/display/KAFKA/System+Tools