【发布时间】:2013-02-01 17:20:06
【问题描述】:
用例:一个池中有 100 台服务器;我想在每个服务器上启动 ZooKeeper 服务,并且服务器应用程序(ZooKeeper 客户端)将使用 ZooKeeper 集群(读/写)。那么就没有单点故障了。
这个用例是否可行?表现如何?
如果池中有 1000 个服务器怎么办?
【问题讨论】:
标签: apache-zookeeper
用例:一个池中有 100 台服务器;我想在每个服务器上启动 ZooKeeper 服务,并且服务器应用程序(ZooKeeper 客户端)将使用 ZooKeeper 集群(读/写)。那么就没有单点故障了。
这个用例是否可行?表现如何?
如果池中有 1000 个服务器怎么办?
【问题讨论】:
标签: apache-zookeeper
如果您只是想避免单点故障,那么您只需要 3 台服务器。在 3 个节点的集合中,可以容忍单个故障,其余 2 个节点构成仲裁。您拥有的服务器越多,写入性能就越差。而 100 个服务器就是这个极限,如果 ZK 甚至可以处理的话。
不过,拥有这么多客户完全没有问题。 Zookeeper 拥有超过 1000 个客户端的活跃部署。如果您发现需要更多服务器来处理读取负载,您可以随时添加Observers。我强烈建议您加入list serve。这是快速回答您的问题的好方法,而且可能比任何人在 SO 上提供的更详细。
【讨论】:
也许 zookeeper 不是正确的工具?
Hazelcast 做你想做的事,我想。您可以有数百个对等点,如果主节点丢失,则从所有对等点中选出一个新的。
您不需要使用所有的榛子石膏。您可以只使用地图,或者只使用工作池,或者只使用同步原语,或者只使用消息传递等。
【讨论】: