我们建立了一个由3个代理组成的kafka/zookeeper集群。我们有一个制作人,向一个特定的Kafka主题发送信息,还有一些消费者群体阅读该主题。这些消费者通过zookeeper为自己(独立于Kafka)进行领导人选举。
使用的版本有:
Kafka:0.9.0.1
zookeeper:3.4.6(包含在Kafka软件包中)
所有流程均由主管管理。到目前为止,一切正常。我们现在尝试的(出于测试目的)是简单地关闭所有zookeeper进程,看看会发生什么。
正如我们所料,我们的用户进程无法再连接到zookeeper。但出乎意料的是,Kafka的经纪人仍然在工作。我们的制作人一点也没有抱怨,仍然能够写进这个主题。虽然我不能使用kafka/bin/kafka-topics.sh或类似的文件,因为它们都需要zookeeper参数,但我仍然可以看到主题日志的实际大小在增长。重新启动zookeeper进程后,一切又像以前一样正常了。
我们不知道的是。。。那里到底发生了什么?我们认为,Kafka将需要一个工作Zookeeper连接,我们找不到任何解释这种行为在网上。
1条答案
按热度按时间thigvfpy1#
当你有一个zookeeper节点时,代理将无法联系zookeeper,当代理发现zookeeper不可访问后,代理也将变得不可访问。因此,生产者和消费者。在生产者的情况下,它开始下降(拒绝记录)。在消费者的情况下,有可能发生的是,读取记录,这是没有确认可能会结束处理再次当经纪人是起来,并准备好。。。
在3node zk的情况下,一个节点失败是可以接受的,因为仲裁仍然满足。。。但无法承受将导致上述后果的2节点故障。。。