我试图用3个经纪人测试运行单个Kafka节点&动物园管理员。我希望使用控制台工具进行测试。我这样经营生产者:
kafka-console-producer --broker-list localhost:9092,localhost:9093,localhost:9094 --topic testTopic
然后我按照这样运行消费者:
kafka-console-consumer --zookeeper localhost:2181 --topic testTopic --from-beginning
我可以按照预期在生产者中输入消息并在消费者中查看消息。 然而,当我使用bootstrap-server运行使用者的更新版本时,我什么都没得到。 E.g
kafka-console-consumer --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --topic testTopic --from-beginning
当我在端口9092上运行一个代理时,这很好用,所以我很困惑。有没有办法可以看到zookeeper提供什么作为引导程序服务器?引导服务器与代理列表不同吗? Kafka使用Scala 2.11编译。
答案 0 :(得分:6)
我不知道出了什么问题。可能我把Kafka或Zookeeper置于一种奇怪的状态。删除每个代理的SdiDocument
中的主题和log.dir
中的zookeeper主题然后重新创建主题后,Kafka消费者的行为与预期一致。
答案 1 :(得分:3)
引导服务器与kafka代理相同。如果您想查看zookeeper提供的引导服务器列表,您可以通过任何ZK客户端查询ZNode信息。所有活跃的经纪人都在/ brokers / ids / [brokerId]下注册。您只需要zkQuorum地址。下面的命令会给你 活动引导服务器列表:
./ zookeeper-shell.sh localhost:2181<<< " ls / brokers / ids"
答案 2 :(得分:0)
使用不匹配的版本时遇到了同样的问题:
在我的确切场景中,我使用Confluent Kafka客户端库版本0.10.2.1和Confluent Platform 3.3.0 w / Kafka broker 0.11.0.0。当我将Confluent Platform降级到与我的客户端库匹配的3.3.2时,消费者按预期工作。
我的理论是,使用新的Consumer API的最新kafka-console-consumer只使用最新格式检索邮件。 Kafka 0.11.0.0中引入了许多消息格式更改。