【问题标题】:How to check the progress status of the messages in kafka?如何查看kafka中消息的进度状态?
【发布时间】:2021-03-19 14:24:00
【问题描述】:

我在 java 中设计了 REST Post API,它实际上将消息发布到特定的 Kafka 主题,比如说它的“ProductTopic”。

在后台,一个微服务正在监听这个“ProductTopic”主题并开始消费消息并保存到数据库。现在我想编写一个 GET REST API 来查看作业的进度(给出作业的输出),例如成功消耗了多少消息以及仍有多少消息未决。这样最终用户就会知道发生了什么。

有没有办法做到这一点?我确实在谷歌搜索了很多,我看到的只是命令行查询来查看消息的消耗。汇合端没有任何可用的 java 实现示例。任何帮助将不胜感激。

【问题讨论】:

    标签: apache-kafka kafka-consumer-api spring-kafka kafka-producer-api


    【解决方案1】:

    您应该检查服务的消费者组的消费者滞后。滞后大约是endOffset-currentOffset。你可以找到例子here

    【讨论】:

    • 嗨,我确实从示例中实现了这一点。我有疑问。比如现在consumer在offset 5,这个我其他4是不是已经消费成功了?
    • 偏移量是按分区定义的。如果其中一个分区中的已提交偏移量为 5,则表示该分区中所有偏移量小于或等于 5 的消息都已被消费。
    • 好的,谢谢。我明白了...是否有可能从哪个请求触发了哪个偏移量?例如,假设 request-1 向 kafka 添加了 5 条消息。 request-2 向 kafka 添加了 5 条消息。现在,当我得到 currentOffset 和 endOffset 时,我想知道这些偏移量属于哪个请求。
    • 不,您不能为偏移量添加任何元数据
    猜你喜欢
    • 2017-10-29
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2017-11-04
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多