Utilisation réelle du gardien de zoo [fermé]


122

J'ai récemment regardé Zookeeper et je me suis demandé si quelqu'un l'utilisait actuellement et ce qu'il l'utilisait spécifiquement pour le stocker.

Le cas d'utilisation le plus courant concerne les informations de configuration, mais quel type de données et combien de données stockez-vous?


3
Cela relève du groupe de technologies Hadoop, il y a un cas d'utilisation de Yahoo ici qui est assez bon - developer.yahoo.net/blogs/hadoop/2009/05/…
Jon

Je ne connais pas les détails de son utilisation, mais je sais que la dernière version de HBase (une implémentation Open Source BigTable) utilise ZooKeeper.
Leo P

10
Cette question a plus de votes positifs que toutes les réponses combinées. Zookeeper a besoin d'un meilleur wiki de cas d'utilisation.
mixdev

1
Découvrez comment Netflix l'utilise. github.com/Netflix/curator/wiki/Recipes Curator est la bibliothèque de wrapper de Netflix pour ZK.
eSniff

Réponses:


13

L' implémentation Apache CXF de DOSGi utilise zookeeper pour son référentiel d'enregistrement de service. Les conteneurs individuels ont un ensemble de logiciels distribués (dsw) qui écoute tous les événements de service et lorsqu'un statut de service change qui a une propriété indiquant la distribution. Le DSW communique avec le bundle de découverte qui, dans le cas d'implémentation de référence, utilise zookeeper pour stocker le service en tant que nœuds éphémères. D'autres instances rechercheront les modifications apportées à la structure des nœuds et enregistreront les mandataires sur leurs systèmes locaux. Le résultat final est que vous pouvez coder en OSGi brut et vous retrouver avec une distribution transparente.



17

HBase utilise Zookeeper pour coordonner les activités dont son "nœud principal" était responsable avant la version actuelle. Le passage à l'utilisation de Zookeeper signifie que le contrôle central n'est plus un point de défaillance unique.

Zookeeper est très polyvalent; voici un exemple d'utilisation pour créer une file d'attente simultanée distribuée:

http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/

Vous pouvez bien sûr également l'utiliser pour créer des verrous de ressources, etc., dans un système distribué.



10

Norbert est un bon exemple d'un système de production évolutif. En général, il intègre Netty, Protocol Buffers et Zookeeper dans un cadre léger pour exécuter des services en cluster. Les tampons de protocole sont utilisés pour spécifier votre API de service, Netty implémente des abstractions de la couche de transport et Zookeeper est essentiellement un service de découverte tolérant aux pannes.

Chaque fois qu'une instance de service est démarrée, Norbert l'enregistre comme instance disponible d'un type de service particulier. Du point de vue de la mise en œuvre, il crée deux arbres Zookeeper:

  • "/ ServiceName / members" qui répertorie toutes les instances connues du service
  • "/ ServiceName / available" qui répertorie les instances actuellement disponibles du service

La propriété la plus importante pour chaque nœud est l'URL à utiliser pour se connecter à l'instance de service correspondante. Il permet l'équilibrage de charge côté client - un client Norbert trouve la liste des URL pour un nom de service donné et tente de se connecter à l'un d'entre eux dans un certain ordre (par exemple, à tour de rôle ou aléatoire).


6

Il y a un bon article ZooKeeper - Le roi de la coordination sur ZooKeeper chez Elastic Cloud.

Chez Found, par exemple, nous utilisons abondamment ZooKeeper pour la découverte, l'allocation des ressources, l'élection du chef et les notifications de haute priorité. Dans cet article, nous vous présenterons ce roi de la coordination et examinerons de près comment nous utilisons ZooKeeper chez Found



3
  • Storm est utilisé par un certain nombre d'entreprises (Twitter et Groupon étant deux des plus connus) et s'appuie sur Zookeeper.
  • Kafka est utilisé par Linkedin et s'appuie sur Zookeeper.

Storm utilise Zookeeper pour stocker tous les états afin de pouvoir récupérer après une panne dans l'un de ses services de composants (distribués).

Cela permet aux services de composants d'être sans état et de simplement télécharger ou synchroniser avec les serveurs Zookeeper lorsque des données de configuration sont nécessaires. Si vous avez déjà eu à récupérer un serveur de production, vous saurez à quel point cela peut être un casse-tête!

Les consommateurs de files d'attente Kafka peuvent utiliser Zookeeper pour stocker des informations (high water mark) sur ce qui a été consommé dans la file d'attente.


2

Dans mon cas, nous stockons les fichiers de configuration dans zookeeper ensemble pour une utilisation en cluster. Nous utilisons le schéma leader -> suiveur. Donc, quand un gardien de zoo en panne, nous passons à un autre (mode répliqué)




1

datomic utilise apache zookeeper pour gérer le stockage de données basé sur riak.

Étant donné que Riak ne prend en charge que la cohérence éventuelle pour le moment, un système Datomic exécuté sur Riak utilise également Apache ZooKeeper, un service de coordination hautement disponible. Datomic utilise ZooKeeper pour la coordination du basculement des transacteurs et pour la poignée de clés par base de données qui doivent être mises à jour avec CAS. source: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.