【问题标题】:Kafka KStream - measuring consumer lagKafka KStream - 衡量消费者滞后
【发布时间】:2016-09-02 18:24:10
【问题描述】:

由于我的基于 KStream 的应用程序不遵循传统的 Kafka 消费者路线,我应该如何跟踪消费者滞后?通常我会使用ConsumerOffsetChecker(或类似的东西),但它需要一个消费者组名称。

我应该改用什么?

(我想对此进行跟踪,以便判断是否/何时推出新消费者)

【问题讨论】:

    标签: java apache-kafka apache-kafka-streams


    【解决方案1】:

    Kafka Streams 在内部利用KafkaConsumer,并使用应用程序 ID 作为消费者组 ID。因此,您可以像监控任何其他消费者一样监控延迟。

    http://docs.confluent.io/current/streams/developer-guide.html#required-configuration-parameters

    Application Id (application.id):每个流处理应用程序必须有一个唯一的id。 [...]

    这个 id 用在以下地方,将应用程序使用的资源与其他人隔离:

    • 作为默认的 Kafka 消费者和生产者 client.id 前缀
    • 作为 Kafka 消费者 group.id 进行协调
    • 作为状态目录中子目录的名称(参见 state.dir)
    • 作为内部 Kafka 主题名称的前缀

    【讨论】:

    • 这很奇怪。当我调用kafka-consumer-groups --zookeeper <zookeeper ip:2181> --list 时,它什么也不返回。如果我指定 group(我的应用程序 ID)和 --describe,我会得到一个 no topic available for consumer group provided
    • 由于 Kafka 0.9 消费者组不再通过 ZK 管理。因此,您需要指定不同的标志:bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server <broker-host:port> --list
    • 是的,ZK 仍然是必需的。然而,对于未来的版本,客户端(以及 Streams 应用程序)将不再依赖 ZK——虽然不确定具体是哪个版本。
    • 澄清一下:Kafka 0.10.0 中 Kafka Streams 的 ZK 依赖是/曾经只是临时填补空白,直到 Kafka 的 KIP-4 功能正式可用(KIP-4 已经合并到 Kafka trunk ) 因为我们不想重复(KIP-4)在没有 ZK 的情况下在 Kafka Streams 中执行主题管理的工作,因为我们知道 KIP-4 很快就会准备好。现在后者已经可以使用了,Kafka Streams 可以摆脱它最初的 ZK 依赖,我们已经在处理它了。
    猜你喜欢
    • 2020-08-08
    • 1970-01-01
    • 2020-03-25
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    相关资源
    最近更新 更多