我的应用程序使用来自kafka主题的消息,当我在我的环境中运行单个实例时,该消息正常工作但如果我运行多个实例,则说3个实例(高可用性),那么我的应用程序实例都不能消耗来自主题的消息。
我在该主题上有3个分区和1个复制因子。
当我跑步时
./kafka-topics.sh --describe --zookeeper localhost:2181 --topic mytesttopic
Topic:mytesttopic PartitionCount:3 ReplicationFactor:1 Configs:
Topic: mytesttopic Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: mytesttopic Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Topic: mytesttopic Partition: 2 Leader: 0 Replicas: 0 Isr: 0
它为mytesttopic提供了以上配置。所以我不确定这里缺少哪些步骤来消费来自HA中的Kafka或多个消费者实例的消息。
答案 0 :(得分:0)
您应该验证您的所有Kafka代理实例都已在Zookeeper上注册,当然还有不同的broker.id
。
您可以通过运行此代码来执行此操作:/bin/zookeeper-shell.sh localhost:2181 ls /brokers/ids
使用3分区创建新主题并运行describe
命令后,您应该得到以下输出:
Topic: mytesttopic PartitionCount:3 ReplicationFactor:1 Configs:
Topic: mytesttopic Partition: 0 Leader: 2 Replicas: 2 Isr: 2
Topic: mytesttopic Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Topic: mytesttopic Partition: 2 Leader: 1 Replicas: 1 Isr: 1