【问题标题】:programmatically find kafka topic size以编程方式查找 kafka 主题大小
【发布时间】:2017-08-04 14:22:41
【问题描述】:

我是卡夫卡的新手。我使用 java 创建了一个生产者并将一些消息发送到一个主题。有没有办法以编程方式查找特定主题中的消息数。

请分享你的想法。

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    KafkaConsumer API 提供了可以帮助您的接口。有beginningOffsets(Collection<TopicPartition> partitions)endOffsets(Collection<TopicPartition> partitions)。您可以为您的主题中的所有分区调用这些方法,然后找到每个主题分区的结束偏移量和开始偏移量之间的差异。然后聚合所有主题分区。这应该会给你主题中的消息数量。 (reference)

    【讨论】:

      【解决方案2】:

      vahid 所说的可能是一个解决方案,但您也可以使用以下解决方案:

      bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic --time -1
      

      那么你必须对计数值求和。

      在任何情况下,请考虑如果日志压缩处于活动状态,我的和 vahid 解决方案将不起作用,因为在这种情况下,偏移量之间可能存在一些“间隙”,因此仅计算差异不会为您提供消息数量。

      【讨论】:

        猜你喜欢
        • 2021-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-14
        相关资源
        最近更新 更多