web-dev-qa-db-fra.com

Utilisation de Zookeeper dans le monde réel

Je me suis penché sur Zookeeper récemment et je me suis demandé si quelqu'un l'utilisait actuellement et ce qu'il utilisait spécifiquement pour le stockage.

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?

122
Jon

Le implémentation Apache CXF de DOSGi utilise zookeeper pour son référentiel d’enregistrement de service. Les conteneurs individuels disposent d'un ensemble de logiciels distribués (dsw) qui écoute tous les événements de service et lorsqu'un statut de service est modifié, une propriété indiquant la distribution. Dsw parle au groupe de découverte qui, dans le cas de la mise en œuvre de référence, utilise zookeeper pour stocker le service en tant que nœuds éphémères. D'autres instances chercheront des modifications dans la structure des noeuds et enregistreront les mandataires sur leurs systèmes locaux. Le résultat final est que vous pouvez coder en OSGi brut et obtenir une distribution transparente.

14
John Ellinwood

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 la commande centrale 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é.

17
SquareCog
15
dln385

Vieille question, mais puisque cette page apparaît en premier sur une recherche google pour les cas d'utilisation de zookeeper, j'ai pensé qu'il serait préférable de donner une liste mise à jour.

  1. wikipedia
  2. zookeeper wiki
  3. tilisateurs réels
15
manku

Norbert est un bon exemple tiré d'un système de production évolutif. En général, il intègre Netty, Protocol Buffers et Zookeeper dans un cadre léger permettant d’exécuter des services en cluster. Les tampons de protocole permettent de spécifier votre API de service, Netty implémente les abstractions de la couche de transport et Zookeeper est essentiellement un service de découverte à tolérance de 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 la charge côté client: un client Norbert trouve la liste des URL pour un nom de service donné et tente de se connecter à l’une d’elles (ordre de rotation ou aléatoire, par exemple).

10
ndolgov

Il y a un bon article ZooKeeper - Le roi de la coordination à propos de ZooKeeper chez Found.

5
herodot

Solr est aussi travaille pour intégrer ZooKeeper . Ici, vous pouvez voir qu'ils utilisent pour la configuration dynamique, le sharding, l'élimination SPOF (élection maître/esclave), le rééquilibrage, etc.

4
phunt
  • Storm est utilisé par un nombre de sociétés (Twitter et Groupon étant deux des plus connues) et s'appuie sur Zookeeper.
  • Kafka est utilisé par Linkedin et repose sur Zookeeper.

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

Cela permet aux services de composants d'être sans état et simplement de télécharger ou de 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 vous causer des maux de tête!

Kafka Les utilisateurs de la file d’attente peuvent utiliser Zookeeper pour stocker des informations (limite supérieure) sur ce qui a été consommé dans la file d’attente.

3
Thomas Bratt

Dans mon cas, nous stockons les fichiers de configuration dans l'ensemble de zookeeper pour une utilisation en cluster. Nous utilisons un schéma leader -> suiveur. Donc, quand un gardien de zoo est arrêté, nous sommes remplacés par un autre (mode répliqué)

2

Zookeeper a été utilisé pour beaucoup d'autres choses que la configuration. Voici une liste officielle des primitives d'implémentation distribuées utilisant zookeeper.

https://zookeeper.Apache.org/doc/current/recipes.html

2
liheyuan

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

Riak ne prenant en charge que la cohérence éventuelle à ce stade, un système Datomic s'exécutant sur Riak utilise également Apache ZooKeeper, un service de coordination hautement disponible. Datomic utilise ZooKeeper pour la coordination du basculement de transaction et pour les quelques clés par base de données à mettre à jour avec CAS. source: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html

1
mavbozo

Neo4j utilise Zookeeper, son serveur d'entreprise haute disponibilité! http://docs.neo4j.org/chunked/milestone/ha.html

1
John Russell

Voici quelques informations détails sur la manière dont HBase utilise ZooKeeper , y compris des informations sur la manière dont ils envisagent de l’utiliser à l’avenir. Généralement, ils l'utilisent pour éliminer SPOF sur les serveurs de région via l'élection de Leader mise en œuvre à l'aide de ZooKeeper.

0
phunt