【问题标题】:Why I can't get the instant/real-time current offset in Kafka?为什么我无法在 Kafka 中获得即时/实时当前偏移量?
【发布时间】:2020-02-14 00:16:49
【问题描述】:

我使用kafka-consumer-groups --describe --group test --bootstrap-server device2:9092 在我使用消息时显示最新的CURRENT-OFFSET(大约 10 条消息/秒)。

输出如下:

TOPIC      PARTITION   CURRENT-OFFSET  LOG-END-OFFSET  LAG         CONSUMER-ID                                             HOST            CLIENT-ID
comment      0          77042           77065           23           kafka-python-1.4.7 
comment      1          77190           77206           16           kafka-python-1.4.7 
comment      2          76677           76682           5            kafka-python-1.4.7 

我继续运行上面的命令来打印当前的偏移量,而它正在消耗。

但是,我发现CURRENT-OFFSET 的数量没有按应有的方式刷新。 而是批量刷新数字,比如从 77042 -> 77142,每批 100 个。

我的问题是如何知道真实的直播CURRENT-OFFSET

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    您需要跟踪来自消费者的偏移值。

    您看到的数字确实是发出 API 请求时的当前偏移量

    如果您有批量行为,则表明您的消费者正在轮询批量消息,并且您正在提交每 N 条消息,例如

    【讨论】:

    • 感谢您的回答。我使用 kafka-python 作为消费者。检查文档后,我发现里面有一个名为auto_commit_every_n 的参数,这可能是相关的。
    • 如果您想要不同的处理语义(例如至少一次),您可能需要关闭它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多