我已经使用kafka_2.11-1.1.0分发存档配置了一个Kafka代理集群和一个Zk实例集群。
对于Kafka经纪人,我已经配置config / server.properties
broker.id=1,2,3
zookeeper.connect=box1:2181,box2:2181,box3:2181
对于Zk实例,我已经配置config / zookeeper.properties:
server.1=box1:2888:3888
server.2=box3:2888:3888
server.3=box3:2888:3888
我已经创建了一个基本的生产者和一个基本的消费者,即使我关闭了所有Zookeeper,我也不知道为什么我能够写消息/阅读消息 实例,并使所有Kafka代理启动并运行。 即使引导新的消费者,生产者也可以毫无问题地工作。
我认为拥有足够数量的Zk实例对于Kafka集群至关重要。
对于消费者和生产者,我都使用以下配置:
bootrapServers=box1:9092,box2:9092,box3:9092
谢谢
答案 0 :(得分:2)
我认为拥有足够数量的Zk实例对于Kafka集群至关重要。
Zookeeper仲裁对于管理分区列表,领导者等至关重要。通常,ZK对于由集群中的集群协调器完成的管理是必需的。
基本上,现在(关闭ZK),您不能修改主题(因为分区元数据存储在ZK中),启动/关闭代理(因为它们使用ZK进行发现)和其他类似操作。
即使引导新的消费者,生产者也可以正常工作。
生产者/消费者操作仅适用于经纪人。代理实例仍可以追加到日志,并且仍可以与其他代理进行通信以进行复制。因此,可以发送消息,使消息被代理接收并保存到磁盘,同时与其他代理进行复制(因为它们不断向领导者发送获取请求(他们知道此分区的领导者是谁,因为他们在ZK时保存了该数据)仍在运行))。