Articulo de referencia

Apache ZooKeeper

Apache ZooKeeper es un servidor de código abierto para la coordinación distribuida de aplicaciones en la nube de manera altamente confiable. [2] Es un proyecto de la Apache Soft...

Apache ZooKeeper es un servidor de código abierto para la coordinación distribuida de aplicaciones en la nube de manera altamente confiable. [2] Es un proyecto de la Apache Software Foundation .

ZooKeeper es esencialmente un servicio para sistemas distribuidos que ofrece un almacén de clave-valor jerárquico , que se utiliza para proporcionar un servicio de configuración distribuida , un servicio de sincronización y un registro de nombres para grandes sistemas distribuidos (consulte Casos de uso ). [3] ZooKeeper era un subproyecto de Hadoop , pero ahora es un proyecto Apache de nivel superior por derecho propio.

Descripción general

La arquitectura de ZooKeeper permite una alta disponibilidad a través de servicios redundantes . De esta forma, los clientes pueden preguntar 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, muy parecido a un sistema de archivos o una estructura de datos en forma de árbol . Los clientes pueden leer y escribir en los nodos y, de esta manera, tienen un servicio de configuración compartido. ZooKeeper puede considerarse como un sistema de difusión atómica , a través del cual las actualizaciones se ordenan de forma total . El protocolo de difusión atómica de ZooKeeper (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 está basado 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 mediante el almacenamiento del estado en archivos de registro locales en los servidores de ZooKeeper. Estos servidores se comunican con las máquinas cliente para proporcionarles la información. ZooKeeper fue desarrollado para corregir los errores que ocurrían durante la implementación de aplicaciones de big data distribuidas.

Algunas de las principales características de Apache ZooKeeper son:

  • Sistema confiable: este sistema es bastante confiable ya que sigue funcionando incluso si algunos nodos dejan de funcionar.
  • Arquitectura simple: La arquitectura de ZooKeeper es bastante simple ya que hay un espacio de nombres jerárquico compartido que ayuda a coordinar los procesos.
  • Procesamiento rápido: ZooKeeper es especialmente rápido en cargas de trabajo de "lectura dominante" (es decir, cargas de trabajo en las que las lecturas son mucho más comunes que las escrituras).
  • Escalable: el rendimiento de ZooKeeper se puede mejorar agregando nodos.

Arquitectura

Algunas terminologías comunes relacionadas con la arquitectura de ZooKeeper:

  • Nodo: Los sistemas instalados en el clúster.
  • ZNode: Los nodos donde el estado es actualizado por otros nodos en el clúster
  • Aplicaciones cliente: Las herramientas que interactúan con las aplicaciones distribuidas
  • Aplicaciones de servidor: permite 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 (denominados "conjunto"), cada uno de los cuales mantiene una base de datos en memoria que contiene todo el árbol de datos de 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 latidos y recibe respuestas y observa eventos para su monitoreo. [14]

Casos de uso

Los casos de uso típicos de ZooKeeper son:

Bibliotecas de clientes

Además de las bibliotecas de cliente incluidas con la distribución de ZooKeeper, hay disponibles varias bibliotecas de terceros como Apache Curator y Kazoo que facilitan el uso de ZooKeeper, agregan funcionalidad adicional, lenguajes de programación adicionales, etc.

Proyectos Apache que utilizan ZooKeeper

Véase también

Referencias

  1. ^ "Apache ZooKeeper - Releases" . Consultado el 12 de febrero de 2023 .
  2. ^ "Apache Zookeeper4" . Consultado el 31 de enero de 2021 .
  3. ^ "Índice - Apache ZooKeeper - Apache Software Foundation". cwiki.apache.org . Consultado el 26 de agosto de 2016 .
  4. ^ "Descripción general del cuidador del zoológico".
  5. ^ "ZooKeeper/Powered By". Archivado desde el original el 2013-12-09 . Consultado el 2012-01-25 .
  6. ^ "Por qué Reddit no funcionaba el 11 de agosto". 16 de agosto de 2016.
  7. ^ "5 grandes desafíos de DaaS y cómo superarlos | Sala de prensa de NetApp". Sala de prensa de NetApp . 20 de junio de 2016 . Consultado el 24 de mayo de 2017 .[ enlace muerto permanente ]
  8. ^ "Distribución basada en la ubicación: configuración de servidores a escala". Código de Facebook . 2018-07-19 . Consultado el 2018-07-20 .
  9. ^ "ZooKeeper en Twitter". Blog de ingeniería de Twitter . 2018-10-11 . Consultado el 2018-12-08 .
  10. ^ "Nube de Solr".
  11. ^ "Apache Pinot: Arquitectura".
  12. ^ Burrows, Mike (2006). "El servicio de bloqueo Chubby para sistemas distribuidos de acoplamiento flexible". 7.º Simposio USENIX sobre diseño e implementación de sistemas operativos (OSDI) .
  13. ^ Chandra, Tushar Deepak; Griesemer, Robert; Redstone, Joshua (2007). "Paxos Made Live - An Engineering Perspective (Charla invitada de 2006)". Investigación de Google . Consultado el 3 de marzo de 2020 .
  14. ^ "Guardián del zoológico".
  • Sitio web oficial
Obtenido de "https://es.wikipedia.org/w/index.php?title=Apache_ZooKeeper&oldid=1181681735"