【发布时间】:2016-09-02 18:24:10
【问题描述】:
由于我的基于 KStream 的应用程序不遵循传统的 Kafka 消费者路线,我应该如何跟踪消费者滞后?通常我会使用ConsumerOffsetChecker(或类似的东西),但它需要一个消费者组名称。
我应该改用什么?
(我想对此进行跟踪,以便判断是否/何时推出新消费者)
【问题讨论】:
标签: java apache-kafka apache-kafka-streams
由于我的基于 KStream 的应用程序不遵循传统的 Kafka 消费者路线,我应该如何跟踪消费者滞后?通常我会使用ConsumerOffsetChecker(或类似的东西),但它需要一个消费者组名称。
我应该改用什么?
(我想对此进行跟踪,以便判断是否/何时推出新消费者)
【问题讨论】:
标签: java apache-kafka apache-kafka-streams
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。
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server <broker-host:port> --list
trunk ) 因为我们不想重复(KIP-4)在没有 ZK 的情况下在 Kafka Streams 中执行主题管理的工作,因为我们知道 KIP-4 很快就会准备好。现在后者已经可以使用了,Kafka Streams 可以摆脱它最初的 ZK 依赖,我们已经在处理它了。