teh*_*ehK 11 failover apache-kafka apache-zookeeper
我们设置了一个由3个经纪人组成的Kafka/Zookeeper群集.我们有一个生产者,向一个特定的Kafka主题发送消息,以及从该主题中读取的一些消费者群体.这些消费者通过Zookeeper为自己进行领导选举(独立于Kafka).
使用的版本是:
所有流程均由主管管理.到目前为止,一切正常.我们现在尝试的(出于测试目的)是简单地杀死所有Zookeeper进程并查看会发生什么.
正如我们所料,我们的消费者流程无法再连接到Zookeeper.但出乎意料的是,Kafka Brokers仍然有效.我们的制作人根本没有抱怨,仍然可以写入主题.虽然我不能用卡夫卡/斌/ kafka-topics.sh或类似,因为它们都需要饲养员参数,我仍然可以看到的话题-LOG增长的实际大小.重新启动zookeeper进程后,所有内容再次像以前一样工作.
我们现在想不出来的是......那里到底发生了什么?我们认为,Kafka需要一个有效的Zookeeper-Connection,我们无法在线找到任何有关此行为的解释.
小智 3
当你有一个zookeeper节点时,broker将无法联系zookeeper,当broker发现zookeeper不可达后,broker也会变得不可达。因此就有了生产者和消费者。如果是生产者,它开始下降(拒绝记录)。对于消费者来说,可能会发生这样的情况:当代理启动并准备好时,未确认的读取记录可能会再次处理......
在 3node zk 的情况下,一个节点故障是可以接受的,因为仲裁仍然满足...但不能承受 2node 故障,这将导致上述后果...