我已经使用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
谢谢
1条答案
按热度按时间xxe27gdn1#
我认为拥有一个zk示例的仲裁对于kafka集群来说是至关重要的。
zookeeper quorum对于管理分区列表、引线等非常重要。通常,zk对于集群中由集群协调器执行的管理是必需的。
基本上,现在(zk关闭时),您不能修改主题(因为分区元数据存储在zk中)、启动/关闭代理(因为它们使用zk进行发现)和其他类似的操作。
即使是启动新的消费者,生产者的工作没有任何问题。
生产商/消费者运营部门只接触经纪人。代理示例仍然可以附加到日志,并且仍然可以与其他代理通信以进行复制。因此,可以发送一条消息,由代理接收并保存到磁盘,其他代理进行复制(因为它们不断地向领导者发送获取请求(而且它们知道这个分区的领导者是谁,因为它们在zk仍在运行时保存了数据))。