web-dev-qa-db-fra.com

FIABILITÉ ZOOODÉE - TROIS VERSUS DE CINQ NODES

À partir de la FAQ de ZookeEperPer :

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.

Avec un ensemble à 3 serveurs, si un serveur est sorti de rotation et qu'un serveur a une panne inattendue, il reste encore un serveur restant qui devrait assurer une interruption de service. Alors pourquoi le besoin de 5 serveurs? Ou est-ce plus qu'une interruption du service qui est considérée?

Mise à jour:

Merci à @sbridges pour souligner que cela a trait à la maintenance d'un quorum. Et la façon dont ZK définit un quorum est ceil(N/2) _ _ N est le original numéro dans l'ensemble (et pas seulement l'ensemble actuellement disponible).

Maintenant, une recherche Google de ZK Quorum trouve ceci dans le livre HBASE chapitre sur ZK :

Dans Zookeper, un nombre pair est supporté, mais il n'est normalement pas utilisé car un ensemble de taille même nécessite, proportionnellement, plus de pairs de former un quorum qu'un ensemble de taille impairs nécessite. Par exemple, un ensemble avec 4 pairs nécessite 3 pour former un quorum, tandis qu'un ensemble avec 5 nécessite également 3 pour former un quorum. Ainsi, un ensemble de 5 permet à 2 pairs d'échouer et de maintenir toujours le quorum, et est donc plus tolérante de défaut que l'ensemble de 4, ce qui ne permet que 1 pair.

Et cette paraphrase de Wikipedia à Edward J. Yoon's Blog :

D'ordinaire, il s'agit d'une majorité de personnes censées être là, bien que de nombreux corps puissent avoir un quorum inférieur ou supérieur.

29
user650654

Zookeeper nécessite que vous ayez un quorum de serveurs, où le quorum est ceil(N/2). Pour un ensemble de serveurs 3, cela signifie que 2 serveurs doivent être en hausse à tout moment, pour un ensemble de 5 serveur, 3 serveurs doivent être en hausse à tout moment.

25
sbridges

Fondamentalement, Zookeper fonctionnera simplement bien tant que les zoo reconstituants actifs sont à la majorité par rapport aux entiers échoués. En outre, dans le cas de la taille même du quorum, I.E 2,4,6, etc. Échec = actif, à cause de cela non recommandé.

Les 3 et 4 ne manipuleront que 1 Faliures, alors pourquoi voudrait-il utiliser 4 zoo reconstituer au lieu de 3.

enter image description here

2
Virtual