从ZooKeeper的常见问题 :
Reliability:
A single ZooKeeper server (standalone) is essentially a coordinator with
no reliability (a single serving node failure brings down the ZK service).
A 3 server ensemble (you need to jump to 3 and not 2 because ZK works
based on simple majority voting) allows for a single server to fail and
the service will still be available.
So if you want reliability go with at least 3. We typically recommend
having 5 servers in "online" production serving environments. This allows
you to take 1 server out of service (say planned maintenance) and still
be able to sustain an unexpected outage of one of the remaining servers
w/o interruption of the service.
随着3服务器的合奏,如果一台服务器被取出的旋转和一个服务器有一个意外的中断,那么仍存在应确保不中断业务一个剩余的服务器。 那么,为什么需要5个服务器? 或者是它的不只是正在考虑中断服务的情况多吗?
更新:
由于@sbridges的指出它与保持法定人数做。 和ZK限定仲裁的方法是ceil(N/2)
其中N
是在合奏(不只是当前可用的集合)的原始数量。
现在,谷歌搜索ZK法定人数认为这在HBase的书上ZK章 :
在动物园管理员,被支承偶数同行的,但它通常不使用,因为偶数大小的合奏需要按比例,比奇数尺寸合奏需要更多的对等体,以形成一个仲裁。 例如,具有4对等体的集合需要3以形成仲裁,同时用5合奏也需要3以形成一个仲裁。 因此,5合奏允许2名同行失败并仍然保持仲裁,因而多个故障比4的总体,只允许1向下对等宽容。
而这个意译维基百科的爱德华J.尹的博客 :
通常情况下,这是一个多数预期是那里的人,虽然很多机构可能有更低或更高的法定人数。