4

用例:一个池中有 100 台服务器;我想在每个服务器上启动 ZooKeeper 服务,并且服务器应用程序(ZooKeeper 客户端)将使用 ZooKeeper 集群(读/写)。那么就没有单点故障。

对于这个用例,这个解决方案是否可行?性能怎么样?

如果池中有 1000 台服务器怎么办?

4

2 回答 2

4

如果您只是想避免点故障,那么您只需要 3 台服务器。在 3 个节点的集合中,可以容忍单个故障,其余 2 个节点构成仲裁。您拥有的服务器越多,写入性能就越差。而 100台服务器就是这个极限,如果 ZK 甚至可以处理的话。

但是,拥有这么多客户完全没有问题。Zookeeper 拥有超过 1000 个客户端的活跃部署。如果您发现需要更多服务器来处理读取负载,您可以随时添加Observers。我强烈建议您加入列表服务。这是快速回答您的问题的好方法,而且可能比任何人在 SO 上给您的详细得多。

于 2013-01-16T01:04:06.500 回答
2

也许动物园管理员不是正确的工具?

Hazelcast做你想做的事,我想。您可以有数百个对等点,如果主节点丢失,则从所有对等点中选出一个新的。

你不需要使用所有的榛子石膏。您可以只使用映射,或者只使用工作池,或者只使用同步原语,或者只使用消息传递等。

于 2013-02-01T09:20:06.397 回答