Uso en el mundo real de Zookeeper [cerrado]


122

He estado mirando Zookeeper recientemente y me pregunté si alguien lo estaba usando actualmente y qué lo estaban usando específicamente para almacenar.

El caso de uso más común es para la información de configuración, pero ¿qué tipo de datos y cuántos datos está almacenando?


3
Viene bajo el grupo de tecnologías Hadoop, hay un caso de uso de Yahoo aquí que es bastante bueno - developer.yahoo.net/blogs/hadoop/2009/05/…
Jon

No sé los detalles de cómo se usa, pero sé que la última versión de HBase (una implementación BigTable de código abierto) utiliza ZooKeeper.
Leo P

10
Esta pregunta tiene más votos a favor que todas las respuestas combinadas. Zookeeper necesita una mejor wiki de caso de uso.
mixdev

1
Mira cómo Netflix lo usa. github.com/Netflix/curator/wiki/Recipes Curator es la biblioteca de envoltorios de Netflix para ZK.
eSniff

Consulte este artículo: stackextend.com/zookeeper/…
Mouad EL Fakir

Respuestas:


13

La implementación Apache CXF de DOSGi usa zookeeper para su repositorio de registro de servicios. Los contenedores individuales tienen un paquete de software distribuido (dsw) que escucha todos los eventos de servicio y cuando cambia el estado de un servicio que tiene una propiedad que indica la distribución. El dsw habla con el paquete de descubrimiento que, en el caso de implementación de referencia, utiliza zookeeper para almacenar el servicio como nodos efímeros. Otras instancias buscarán cambios en la estructura del nodo y registrarán proxies en sus sistemas locales. El resultado final es que puede codificar para OSGi simple y terminar con una distribución transparente.


17

17

HBase utiliza Zookeeper para coordinar actividades de las que su "nodo principal" era responsable antes de la versión actual. El paso a usar Zookeeper significa que el control central ya no es un solo punto de falla.

Zookeeper es muy versátil; Aquí hay un ejemplo de cómo usarlo para crear una cola concurrente distribuida:

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

Por supuesto, también puede usarlo para crear bloqueos de recursos, etc., en un sistema distribuido.



10

Norbert es un buen ejemplo de un sistema de producción escalable. En general, integra Netty, Protocol Buffers y Zookeeper en un marco ligero para ejecutar servicios en clúster. Los Buffers de protocolo se usan para especificar la API de su servicio, Netty implementa abstracciones de la capa de transporte y Zookeeper es esencialmente un servicio de descubrimiento tolerante a fallas.

Cada vez que se inicia una instancia de servicio, Norbert la registra como instancia disponible de un tipo de servicio en particular. Desde la perspectiva de la implementación, crea dos árboles de Zookeeper:

  • "/ ServiceName / members" que enumera todas las instancias conocidas del servicio
  • "/ ServiceName / available" que enumera las instancias actualmente disponibles del servicio

La propiedad más importante para cada nodo es la url que se usará para conectarse a la instancia de servicio correspondiente. Permite el equilibrio de carga del lado del cliente: un cliente de Norbert encuentra la lista de direcciones URL para un nombre de servicio dado e intenta conectarse a una de ellas en algún orden (por ejemplo, round robin o aleatorio).


6

Hay un buen artículo sobre ZooKeeper - The King of Coordination sobre ZooKeeper en Elastic Cloud.

En Found, por ejemplo, utilizamos ZooKeeper ampliamente para descubrimiento, asignación de recursos, elección de líderes y notificaciones de alta prioridad. En este artículo, le presentaremos a este Rey de la coordinación y veremos de cerca cómo usamos ZooKeeper en Found



3
  • Storm es utilizado por varias compañías (Twitter y Groupon son dos de las más conocidas) y confía en Zookeeper.
  • Linkedin utiliza Kafka y depende de Zookeeper.

Storm usa Zookeeper para almacenar todo el estado para que pueda recuperarse de una interrupción en cualquiera de sus servicios componentes (distribuidos).

Esto permite que los servicios de componentes no tengan estado y simplemente se descarguen o se sincronicen con los servidores de Zookeeper cuando se necesiten datos de configuración. Si alguna vez ha tenido que recuperar un servidor de producción, ¡sabrá qué dolor de cabeza puede ser!

Los consumidores de la cola Kafka pueden usar Zookeeper para almacenar información (marca de límite superior) sobre lo que se ha consumido de la cola.


2

En mi caso, estamos almacenando archivos de configuración en el conjunto zookeeper para el uso del clúster. Estamos utilizando el esquema líder -> seguidor. Entonces, cuando un cuidador del zoológico está inactivo, cambiamos por otro (modo replicado)




1

datomic utiliza apache zookeeper para gestionar el almacenamiento de datos basado en riak.

Debido a que Riak solo admite consistencia eventual en este momento, un sistema Datomic que se ejecuta en Riak también utiliza Apache ZooKeeper, un servicio de coordinación de alta disponibilidad. Datomic utiliza ZooKeeper para la coordinación de la conmutación por error de transacciones y para el puñado de claves por base de datos que deben actualizarse con CAS. fuente: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html


0

Aquí hay algunos detalles sobre cómo HBase usa ZooKeeper , incluida información sobre cómo piensan usarlo en el futuro. En general, lo usan para eliminar SPOF en los servidores de la región a través de la elección de Líder implementada usando ZooKeeper.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.