2009-09-25 20 views
120

he estado mirando Zookeeper recientemente y se preguntó si alguien estaba usando actualmente y lo que se utilizaba específicamente para el almacenamiento.mundo real El uso de Zookeeper

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

+3

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

+9

Esta pregunta tiene más votos positivos que todas las respuestas combinadas. Zookeeper necesita una mejor wiki de uso. – mixdev

+1

Mira cómo Netflix lo usa. https: // github.com/Netflix/curator/wiki/Recipes Curator es la librería de contenedor de Netflix para ZK. – eSniff

Respuesta

13

El Apache CXF implementation de DOSGi utiliza cuidador del zoológico por su repositorio de registro del servicio. 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, usa el 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 OSGi simple y terminar con distribución transparente.

1

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

16

HBase utiliza Zookeeper para coordinar las actividades de su "nodo principal" fue responsable antes de la versión actual. La decisión de utilizar Zookeeper significa que el control central ya no es un único punto de falla.

Zookeeper es muy versátil; aquí es un ejemplo del uso para construir una cola concurrente distribuida:

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

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

0

He aquí algunos detail on how HBase uses ZooKeeper, incluyendo información sobre cómo van a utilizar en el futuro. En general, lo utilizan para eliminar SPOF en los servidores de la región a través de la elección de Leader implementada con ZooKeeper.

4

Solr es también working to integrate ZooKeeper. Aquí puede ver que están usando para configuración dinámica, fragmentación, eliminación SPOF (elección maestro/esclavo), reequilibrio, etc.

9

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

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

  • "/ ServiceName/miembros", que enumera todos los casos conocidos de servicio
  • "/ servicename/disponible", que enumera las instancias disponibles actualmente del servicio

La propiedad más importante para cada nodo es la url a usar para conectarse a la instancia de servicio correspondiente. Permite el equilibrio de carga del lado del cliente: un cliente de Norbert encuentra que la lista de URL para un nombre de servicio determinado e intentar conectarse a una de ellas es un poco de orden (por ejemplo, alternar o al azar).

13

vieja pregunta, pero ya que esta página aparece por primera vez en una búsqueda en Google de casos de uso empleado del zoológico, que pensé que sería mejor para dar una lista actualizada

  1. wikipedia
  2. zookeeper wiki
  3. real users
3
  • Storm es utilizado por un number of companies (Twitter y Groupon siendo dos de los más conocidos) y se basa en Zookeeper.
  • Kafka se utiliza por LinkedIn y se basa en Zookeeper.

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

Esto permite que los servicios de componente a ser sin estado y simplemente descarga o sincronización con los servidores Zookeeper cuando se necesita datos de configuración. Si alguna vez tuvo que recuperar un servidor de producción, sabrá qué dolor de cabeza puede ser.

Kafka clientes de la cola pueden utilizar el Zookeeper para almacenar información (marca de agua máxima) en lo que se ha consumido de la cola.

1

datomic utiliza empleado del zoológico Apache para administrar el almacenamiento de datos basado 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 altamente disponible. Datomic utiliza ZooKeeper para la coordinación de failover de transactores, 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

12
-2

Zookeeper no es para almacenar datos, es sólo para el almacenamiento de los nodos. Se usa para verificar si el cliente está disponible o no.

2

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

Cuestiones relacionadas