我们有17名经纪人和5名动物园管理员。我想测试一下动物园管理员的适应能力。因此,我拿下了3个zookeepers,因为我的理解是,对于有5个zookeepers的集群,它所能承受的最大停机是2个(使用2n+1规则) zookeepers的故障。但令我惊讶的是,我能够生产和使用数据。即使所有的动物园管理员(也就是全部5个)都关机了,我还是能够产生数据。能解释一下这两种行为背后的原因吗?
发布于 2020-04-01 06:14:11
仅当集群发生变化时,通知才需要Zookeeper。比如说,经纪人加入集群或倒闭。如果所有代理都在运行,并且有消费者/生产者连接到它并发送/接收数据,那么就不需要zookeeper通信,一切都将继续工作。新的生产者/消费者连接可能不起作用,但我对此不是百分之百有信心。
当代理加入/离开集群时,需要通知消费者,以便他们可以指出他们正在消费的分区/主题的正确领导者。此外,还需要通知其他代理开始将数据同步到新的代理,或者承担现在无领导的主题/分区的领导权。所有这些通知都是通过zookeeper发送的。
在这些链接上有更多的详细信息:
https://www.waitingforcode.com/apache-kafka/the-role-of-apache-zookeeper-in-apache-kafka/read
发布于 2020-04-01 11:32:00
Kafka可以在没有Zookeeper的情况下正常运行,只要不需要更改In Sync副本。当代理反弹/加入时,一旦ISR中有任何分区的更新,Kafka就会开始抛出错误。
https://stackoverflow.com/questions/60960447
复制相似问题