ZooKeeper es un proyecto de software de la Apache Software Foundation que proporciona servicios de configuración distribuida, servicios de sincronización y registro de nombres de código abierto para la informática distribuida a gran escala.
La arquitectura de ZooKeeper logra alta disponibilidad mediante servicios redundantes.
El objetivo de diseño de Zookeeper es encapsular esos servicios de consistencia distribuida complejos y propensos a errores, formando un conjunto de primitivas eficiente y confiable, y proporcionándolo a los usuarios a través de una serie de interfaces simples y fáciles de usar.
Es una solución típica para la consistencia de datos distribuidos. Las aplicaciones distribuidas pueden implementar funciones como publicación/suscripción de datos, equilibrio de carga, servicio de nombres, coordinación/notificación distribuida, gestión de clústeres, elección de Master, bloqueos distribuidos y colas distribuidas.

¿Quién debería leer este tutorial?
Este tutorial está dirigido a desarrolladores de software profesionales. A través de este tutorial, puedes comprender paso a paso las aplicaciones de Zookeeper.
Estructura de datos de Zookeeper
El espacio de nombres proporcionado por zookeeper es muy similar a un sistema de archivos estándar, almacenado en forma de clave-valor. La clave del nombre está compuesta por/una serie de elementos de ruta separados por barras diagonales; cada nodo en el espacio de nombres de zookeeper se identifica mediante una ruta.

Teoría CAP relacionada
La teoría CAP señala que para un sistema de computación distribuida es imposible satisfacer simultáneamente los siguientes tres puntos:- Consistencia:En un entorno distribuido, la consistencia se refiere a la capacidad de los datos para mantenerse consistentes entre múltiples réplicas, equivalente a que todos los nodos accedan a la misma copia de datos más reciente. Bajo el requisito de consistencia, cuando un sistema realiza una operación de actualización en un estado de datos consistente, debe garantizar que los datos del sistema sigan estando en un estado consistente.
-
Disponibilidad:Cada solicitud puede obtener una respuesta correcta, pero no se garantiza que los datos obtenidos sean los más recientes.
-
Tolerancia a fallos de partición:Un sistema distribuido, cuando se enfrenta a cualquier fallo de partición de red, aún debe poder garantizar la provisión de servicios que cumplan con la consistencia y la disponibilidad, a menos que todo el entorno de red haya fallado.
Un sistema distribuido solo puede satisfacer como máximo dos de los tres requisitos: consistencia (Consistency), disponibilidad (Availability) y tolerancia a fallos de partición (Partition tolerance).
Entre estos tres requisitos básicos, solo se pueden satisfacer como máximo dos al mismo tiempo. P es obligatorio, por lo que solo se puede elegir entre CP y AP. ZooKeeper garantiza CP, mientras que el centro de registro eruka en el sistema spring cloud implementa AP.

Teoría BASE
BASE es el acrónimo de las tres frases: Basically Available (básicamente disponible), Soft-state (estado suave) y Eventually Consistent (consistencia eventual).
Básicamente disponible:Cuando ocurre una falla en el sistema distribuido, se permite perder parte de la disponibilidad (degradación del servicio, degradación de la página).
Estado suave:Permite que el sistema distribuido presente un estado intermedio. Además, el estado intermedio no afecta la disponibilidad del sistema. Aquí el estado intermedio se refiere a que las actualizaciones de datos entre diferentes data replication (nodos de respaldo de datos) pueden tener una consistencia final con retraso.
- Consistencia eventual:Las data replications alcanzan la consistencia después de un período de tiempo.
La teoría BASE es el resultado de un equilibrio entre la consistencia y la disponibilidad en CAP. La idea central de la teoría es: no podemos lograr una consistencia fuerte, pero cada aplicación puede, según sus propias características comerciales, adoptar métodos apropiados para que el sistema alcance la consistencia eventual.
Recursos relacionados
Sitio web oficial de zookeeper:https://zookeeper.apache.org/