如果我有多个经纪人,我的生产者应使用哪个经纪人?我是否需要手动切换代理以平衡负载?同样,为什么消费者只需要一个Zookeeper端点而不是一个Broker端点?
教程中的快速示例:
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
最佳答案
Kafka在集群(即节点集)上运行,因此在生成任何内容时,您都需要告诉他为应用程序配置的代理的LIST
,以下是从其文档中摘录的一小条注释。
希望这能清除您的一些困惑
这在技术上是不正确的,因为有两种类型的API,即高级和低级使用者。
高级别使用者基本上会处理大多数事情,例如领导者检测,线程问题等,但是并不能提供对消息的太多控制,而这些消息正是使用其他替代方法简单或低级使用者的目的,您将在其中看到您需要提供与经纪人有关的分区详细信息。
因此,仅当您使用高级API时,消费者才需要Zookeeper端点,在使用Simple的情况下,您确实需要提供其他信息