ZooKeeper的可靠性 - 三对五个节点(ZooKeeper reliability - thr

2019-07-01 21:38发布

从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.尹的博客 :

通常情况下,这是一个多数预期是那里的人,虽然很多机构可能有更低或更高的法定人数。

Answer 1:

动物园管理员需要你有服务器的仲裁时,仲裁哪里是ceil(N/2) 对于3服务器集成,这意味着2个服务器必须在任何时候达到,对于5服务器合奏,3个服务器需要高达随时。



Answer 2:

基本上,动物园管理员将只要主动饲养员都是岁数比较失败的饲养员工作得很好。 此外,即使仲裁尺寸即2,4,6等的情况下,失败=有效,因为它不推荐使用。

无论我们为什么要对子级所用4名饲养员代替3 3和4只处理1 faliures然后。



文章来源: ZooKeeper reliability - three versus five nodes