我正在阅读Kafka的文档,它在这里说:
对于复制因子为N的主题,我们最多可以容忍N-1 服务器故障,不会丢失任何提交给日志的消息。
http://kafka.apache.org/documentation.html#introduction(它在1.2用例之上)
这怎么可能?根据我的理解,引擎盖下的主题使用ZooKeeper,它使用Zab(类似Paxos的算法)。我无法从此页面找到有关Zab的任何文档:
https://cwiki.apache.org/confluence/display/ZOOKEEPER/Zab+vs.+Paxos
有人可以向我解释他们如何支持N-1失败。 Nn 1 N-1字面上只是机器本身的所有东西吗?
此外,如果有人知道任何阅读的好地方或Zab的视频,请告诉我。
除此之外http://web.stanford.edu/class/cs347/reading/zab.pdf,因为我希望更轻松。
由于
答案 0 :(得分:3)
我可以帮助您回答问题的Kafka / Zookeeper部分。我认为你很困惑Kafka和Zookeeper如何一起工作。
我认为考虑Kafka和Zookeeper独立运作可能会更好,但需要两者共同完成工作。 Kafka和Zookeeper都可以自行失败。
Kafka和Zookeeper对于失败的原因都有不同的规则。
我对Zookeeper,Zab(类似Paxos算法)中使用的算法一无所知,但根据我的理解,这就是Kafka和Zookeeper一起工作的方式。