Niezawodność ZooKeeper-trzy na pięć węzłów

Z Zookeeper FAQ:

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.

W przypadku zespołu 3-serwerowego, jeśli jeden serwer jest wyłączony z obrotu i jeden serwer ma nieoczekiwaną awarię, to nadal pozostaje jeden serwer, który powinien zapewnić brak przerw w działaniu usługi. To po co potrzeba 5 serwerów? A może chodzi o coś więcej niż tylko Przerwanie usługi?

Update:

Podziękowania dla @SB za zwrócenie uwagi, że ma to związek z utrzymaniem quorum. A sposób, w jaki ZK definiuje kworum to ceil(N/2) Gdzie N to oryginalna liczba w zespole (a nie tylko aktualnie dostępnym zestawie).

Teraz wyszukiwarka google dla kworum ZK Znajduje to w HBase book rozdział na ZK :

W Zookeeperze obsługiwana jest parzysta liczba rówieśników, ale zwykle jest to nie używany, ponieważ nawet rozmiar zespołu wymaga, proporcjonalnie, więcej rówieśników, aby stworzyć kworum niż wymaga tego zespół nieparzystych rozmiarów. Na przykład, zespół z 4 rówieśnikami wymaga 3 do utworzenia kworum, podczas gdy zespół z 5 wymaga również 3, aby utworzyć kworum. Tak więc zespół z 5 pozwala 2 rówieśnikom zawieść i nadal utrzymać kworum, a tym samym jest więcej błąd Tolerancyjny niż zespół 4, który pozwala tylko 1 down peer.

I ta parafraza Wikipedii w blogu Edwarda J. Yoona :

/ Align = "left" / , chociaż wiele ciał może mieć niższe lub wyższe kworum.
Author: Lorenzo Belli, 2012-10-23

2 answers

Zookeeper wymaga posiadania kworum serwerów, gdzie kworum wynosi ceil(N/2). W przypadku zespołu 3 serwerów oznacza to, że 2 serwery muszą być aktywne w dowolnym momencie, w przypadku zespołu 5 serwerów 3 serwery muszą być aktywne w dowolnym momencie.

 27
Author: sbridges,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-27 14:28:41

Zasadniczo, Zookeeper będzie działać dobrze tak długo, jak aktywni Zookeeperzy są w większości w porównaniu do nieudanych Zookeeperów. Również w przypadku parzystej wielkości kworum tj. 2,4,6 itd. Nie powiodło się = aktywne, z tego powodu nie jest zalecane.

Zarówno 3 jak i 4 będą obsługiwać tylko 1 faliures to po co nam 4 Faliures zamiast 3.

Tutaj wpisz opis obrazka

 3
Author: Affy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-12 11:01:55