Apache ZooKeeper es un servidor de código abierto para la coordinación distribuida altamente confiable de aplicaciones en la nube. [ 2 ] Es un proyecto de la Apache Software Foundation .
ZooKeeper es esencialmente un servicio para sistemas distribuidos que ofrece un almacén jerárquico de clave-valor , el cual se utiliza para proporcionar un servicio de configuración distribuida , un servicio de sincronización y un registro de nombres para grandes sistemas distribuidos (véase Casos de uso ). [ 3 ] ZooKeeper fue un subproyecto de Hadoop , pero ahora es un proyecto Apache de primer nivel por derecho propio.
Descripción general
La arquitectura de ZooKeeper admite alta disponibilidad mediante servicios redundantes . Los clientes pueden solicitar ayuda a otro líder de ZooKeeper si el primero no responde. Los nodos de ZooKeeper almacenan sus datos en un espacio de nombres jerárquico, similar a un sistema de archivos o una estructura de datos en árbol . Los clientes pueden leer y escribir en los nodos, lo que les permite contar con un servicio de configuración compartido. ZooKeeper puede considerarse un sistema de difusión atómica , mediante el cual las actualizaciones se realizan de forma totalmente ordenada . El protocolo ZooKeeper Atomic Broadcast (ZAB) es el núcleo del sistema. [ 4 ]
ZooKeeper es utilizado por empresas como Yelp , Rackspace , Yahoo , [ 5 ] Odnoklassniki , Reddit , [ 6 ] NetApp SolidFire , [ 7 ] Meta , [ 8 ] Twitter [ 9 ] y eBay , así como por sistemas de búsqueda empresarial de código abierto como Solr y sistemas de bases de datos distribuidas como Apache Pinot . [ 10 ] [ 11 ]
ZooKeeper se basa en el servicio de bloqueo Chubby de Google [ 12 ] [ 13 ] y fue desarrollado originalmente en Yahoo! para optimizar los procesos que se ejecutan en clústeres de big data, almacenando el estado en archivos de registro locales en los servidores de ZooKeeper. Estos servidores se comunican con las máquinas cliente para proporcionar la información necesaria. ZooKeeper se desarrolló para abordar los problemas que surgían durante el despliegue de aplicaciones distribuidas de big data.
Algunas de las características principales de Apache ZooKeeper son:
- Sistema fiable: el sistema sigue funcionando incluso si algunos nodos dejan de funcionar.
- Arquitectura sencilla: existe un espacio de nombres jerárquico compartido que ayuda a coordinar los procesos.
- Procesamiento rápido: especialmente rápido en cargas de trabajo con predominio de lectura (es decir, cargas de trabajo en las que las lecturas son mucho más frecuentes que las escrituras).
- Escalable: el rendimiento se puede mejorar añadiendo nodos.
Arquitectura
Algunos términos comunes relacionados con la arquitectura de ZooKeeper:
- Nodo: los sistemas instalados en el clúster.
- ZNode: los nodos cuyo estado es actualizado por otros nodos del clúster.
- Aplicaciones cliente: las herramientas que interactúan con las aplicaciones distribuidas.
- Aplicaciones de servidor: permiten que las aplicaciones cliente interactúen mediante una interfaz común.
Los servicios del clúster se replican y almacenan en un conjunto de servidores (denominado "ensamble"), cada uno de los cuales mantiene una base de datos en memoria que contiene el árbol de datos completo del estado, así como un registro de transacciones e instantáneas almacenadas de forma persistente. Varias aplicaciones cliente pueden conectarse a un servidor, y cada cliente mantiene una conexión TCP a través de la cual envía solicitudes y señales de actividad, y recibe respuestas y eventos de vigilancia para su monitorización. [ 14 ]
Casos de uso
Los casos de uso típicos de ZooKeeper son:
Bibliotecas de clientes
Además de las bibliotecas cliente incluidas en la distribución de ZooKeeper, varias bibliotecas de terceros, como Apache Curator y Kazoo, amplían las capacidades de ZooKeeper. Estas bibliotecas ofrecen mayor facilidad de uso, funciones adicionales y compatibilidad con una gama más amplia de lenguajes de programación.
Proyectos Apache que utilizan ZooKeeper
Véase también
Referencias
- ↑ "Versión 3.9.5-0" . 11 de febrero de 2026. Consultado el 1 de abril de 2026 .
- ↑ "Apache Zookeeper4" . Consultado el 31 de enero de 2021 .
- ↑ "Índice - Apache ZooKeeper - Apache Software Foundation" . cwiki.apache.org . Consultado el 26 de agosto de 2016 .
- ↑ "Descripción general de Zookeeper" .
- ↑ "ZooKeeper/Powered By" . Archivado del original el 9 de diciembre de 2013. Consultado el 25 de enero de 2012 .
- ↑ "Por qué Reddit estuvo caído el 11 de agosto" . 16 de agosto de 2016.
- ↑ "5 grandes desafíos de DaaS y cómo superarlos | Sala de prensa de NetApp" . Sala de prensa de NetApp . 2016-06-20 . Consultado el 2017-05-24 .
- ↑ "Distribución con reconocimiento de ubicación: configuración de servidores a gran escala" . Código de Facebook . 19 de julio de 2018. Consultado el 20 de julio de 2018 .
- ↑ "ZooKeeper en Twitter" . Blog de ingeniería de Twitter . 11 de octubre de 2018. Consultado el 8 de diciembre de 2018 .
- ↑ "SolrCloud" .
- ↑ "Apache Pinot: Arquitectura" .
- ↑ Burrows, Mike (2006). "El servicio de bloqueo Chubby para sistemas distribuidos débilmente acoplados" . 7º Simposio USENIX sobre Diseño e Implementación de Sistemas Operativos (OSDI) .
- ↑ Chandra, Tushar Deepak; Griesemer, Robert; Redstone, Joshua (2007). "Paxos Made Live - An Engineering Perspective (2006 Invited Talk)" . Google Research . Recuperado el 3 de marzo de 2020 .
- ↑ "Documentación de Apache Zookeeper 3.9" .
- ↑ "Apache Kafka" .
Enlaces externos
- Sitio web oficial
- Proyectos de la Apache Software Foundation
- Gestión de la configuración
- Software libre programado en Java.
- Apache Hadoop
- Software que utiliza la licencia Apache.