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).
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
Esta pregunta tiene más votos positivos que todas las respuestas combinadas. Zookeeper necesita una mejor wiki de uso. – mixdev
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