Tutorial de Apache ZooKeeper

โšก Resumen inteligente

El tutorial de Apache ZooKeeper presenta el servicio centralizado para la configuraciรณn, la asignaciรณn de nombres, la sincronizaciรณn y los servicios de grupo en sistemas distribuidos. LessLos ons abarcan la arquitectura, el modelo de datos, los sistemas de vigilancia, los conjuntos, las aplicaciones, las ventajas y las desventajas.

  • ๐Ÿ›๏ธ Servicio de coordinaciรณn: ZooKeeper actรบa como una columna vertebral fiable para la coordinaciรณn y el consenso de aplicaciones distribuidas.
  • ๐Ÿ—‚๏ธ รrbol de nodos Z: Los datos se almacenan en un espacio de nombres jerรกrquico de ZNodes que se asemeja a un sistema de archivos.
  • ๐Ÿ‘€ Relojes: Los clientes se suscriben a los eventos de ZNode y reciben notificaciones cuando cambian los datos o aparecen elementos secundarios.
  • ๐Ÿงฉ Quรณrum del conjunto: Un conjunto de servidores con un nรบmero impar de servidores proporciona tolerancia a fallos y escrituras basadas en la mayorรญa.
  • โšก Casos de uso: Elecciรณn del lรญder de poderes, bloqueos distribuidos, descubrimiento de servicios y gestiรณn de la configuraciรณn.
  • ๐Ÿค– AI Cluster Ayuda: Los asistentes de IA explican los modos de fallo de ZooKeeper y generan configuraciones de conjuntos compatibles con Kubernetes.

Tutorial de ZooKeeper

ยฟQuรฉ es un sistema distribuido?

Una aplicaciรณn distribuida es una aplicaciรณn que puede ejecutarse en varios sistemas de una red. Se ejecuta simultรกneamente y se coordina para completar una determinada tarea. Estas tareas pueden llevar muchas horas para que las complete cualquier aplicaciรณn no distribuida.

ยฟQuรฉ es Zookeeper?

Apache Zookeeper es un servicio de coordinaciรณn distribuido de cรณdigo abierto que ayuda a gestionar un gran conjunto de hosts. La gestiรณn y coordinaciรณn en un entorno distribuido es complicada. Zookeeper automatiza este proceso y permite a los desarrolladores centrarse en crear funciones de software en lugar de preocuparse por su naturaleza distribuida.

Zookeeper le ayuda a mantener la informaciรณn de configuraciรณn, los nombres y los servicios de grupo para aplicaciones distribuidas. Implementa diferentes protocolos en el clรบster para que la aplicaciรณn no tenga que implementarlos por sรญ sola. Proporciona una vista รบnica y coherente de varias mรกquinas.

ยฟPor quรฉ Apache Zookeeper?

Aquรญ hay razones importantes detrรกs de la popularidad de Zookeeper:

  • Permite la exclusiรณn mutua y la cooperaciรณn entre procesos del servidor.
  • Garantiza que su aplicaciรณn se ejecute de manera consistente.
  • El proceso de transacciรณn nunca se completa parcialmente. Se le asigna el estado de ร‰xito o Fracaso. El estado distribuido se puede retrasar, pero nunca estรก mal
  • Independientemente del servidor al que se conecte, un cliente podrรก ver la misma vista del servicio.
  • Le ayuda a codificar los datos segรบn el conjunto especรญfico de reglas.
  • Ayuda a mantener un espacio de nombres jerรกrquico estรกndar similar a los archivos y directorios.
  • Computadoras, que funcionan como un sistema รบnico que puede estar conectado local o geogrรกficamente.
  • Permite unir/abandonar un nodo en un clรบster y el estado del nodo en tiempo real.
  • Puede aumentar el rendimiento implementando mรกs mรกquinas
  • Le permite elegir un nodo como lรญder para una mejor coordinaciรณn.
  • ZooKeeper funciona rรกpido con cargas de trabajo donde las lecturas de datos son mรกs comunes que las escrituras.

guardiรกn del zoolรณgico Architectura: ยฟCรณmo funciona?

A continuaciรณn se ofrece una breve explicaciรณn sobre APACHE Arquitectura del guardiรกn del zoolรณgico:

  • Zookeeper sigue un Cliente-Servidor Architectura
  • Todos los sistemas almacenan una copia de los datos.
  • Los lรญderes se eligen al inicio
ArchiTecnologรญa de ZooKeeper
ArchiTecnologรญa de ZooKeeper

Servidor: El servidor envรญa un acuse de recibo cuando cualquier cliente se conecta. En el caso de que no haya respuesta del servidor conectado, el cliente redirige automรกticamente el mensaje a otro servidor.

Cliente:El cliente es uno de los nodos del clรบster de aplicaciones distribuidas. Le ayuda a acceder a la informaciรณn del servidor. Cada cliente envรญa un mensaje al servidor a intervalos regulares que le permite saber que el cliente estรก activo.

Lรญder: Uno de los servidores es designado Lรญder. Proporciona toda la informaciรณn a los clientes, asรญ como un reconocimiento de que el servidor estรก activo. Realizarรญa una recuperaciรณn automรกtica si alguno de los nodos conectados fallara.

Seguidor: El nodo servidor que sigue las instrucciones del lรญder se denomina seguidor.

  • Las solicitudes de lectura del cliente son manejadas por el servidor Zookeeper conectado correspondientemente.
  • Las solicitudes de escritura del cliente son manejadas por el lรญder de Zookeeper.

Conjunto/Cluster: Grupo de servidores Zookeeper que se llama conjunto o ClusterPuede utilizar la infraestructura de ZooKeeper en el modo de clรบster para que el sistema tenga el valor รณptimo cuando ejecute Apache.

Interfaz de usuario web de ZooKeeper: Si desea trabajar con la gestiรณn de recursos de ZooKeeper, debe utilizar WebUI. Permite trabajar con ZooKeeper usando la interfaz de usuario web, en lugar de usar la lรญnea de comando. Ofrece una comunicaciรณn rรกpida y efectiva con la aplicaciรณn ZooKeeper.

El modelo de datos de Zookeeper (ZDM)

Ahora, en este tutorial de ZooKeeper, aprendamos sobre el modelo de datos de Zookeeper. La siguiente figura explica el modelo de datos de Apache Zookeeper:

El modelo de datos de Zookeeper
Modelo de datos del cuidador del zoolรณgico
  • El modelo de datos de Zookeeper sigue un espacio de nombres jerรกrquico donde cada nodo se denomina ZNode. Un nodo es un sistema donde se ejecuta el clรบster.
  • Cada ZNode tiene datos. Puede o no tener hijos.
  • Rutas de nodos Z:
    • Canรณnico, separado por barras y absoluto
    • No utilizar referencias relativas.
    • Los nombres pueden tener caracteres Unicode
  • ZNode mantiene la estructura de estadรญsticas y el nรบmero de versiรณn para cambios de datos.

Tipos de nodos de Zookeeper

Hay tres tipos de Znodes:

Persistencia znode: este tipo de znode estรก vivo incluso despuรฉs de que el cliente que creรณ ese znode especรญfico se desconecta. De forma predeterminada, en zookeeper, todos los nodos son persistentes si no se especifica.

Efรญmero znode: este tipo de znode guardiรกn del zoolรณgico estรก vivo hasta que el cliente estรก vivo. Por lo tanto, cuando el cliente se desconecta del cuidador del zoolรณgico, tambiรฉn se eliminarรก. Ademรกs, a los nodos efรญmeros no se les permite tener hijos.

Secuencial znode: los znodes secuenciales pueden ser efรญmeros o persistentes. Entonces, cuando se crea un nuevo znode como un znode secuencial. Puede asignar la ruta del znode adjuntando un nรบmero de secuencia de 10 dรญgitos al nombre original.

ZDM-Relojes

Zookeeper, un evento de vigilancia es un disparador รบnico que se envรญa al cliente que configurรณ la vigilancia. Ocurre cuando cambian los datos de esa vigilancia. La vigilancia de ZDM permite que los clientes reciban notificaciones cuando cambia el znode. Las operaciones de lectura de ZDM como getData(), getChidleren(), tienen la opciรณn de configurar una vigilancia.

Los relojes estรกn ordenados, el orden de los eventos de reloj corresponde al orden de las actualizaciones. Un cliente podrรก ver un evento de observaciรณn para znode antes de ver los nuevos datos que corresponden a ese znode.

ZDM- Lista de control de acceso

Zookeeper utiliza ACL para controlar el acceso a sus znodes. ACL se compone de un par de (Esquema: identificaciรณn, permiso)

Construya en esquemas ACL:

mundo: tiene una sola identificaciรณn, cualquiera

autenticaciรณn: no utiliza ninguna identificaciรณn, representa cualquier usuario autenticado

resumen: use un nombre de usuario: contraseรฑa

host: le permite utilizar el nombre de host del cliente como identidad de identificaciรณn de ACL

IP: use la direcciรณn IP del host del cliente como identidad de identificaciรณn de ACL

Permisos de ACL:

  • CREAR
  • LEER
  • ESCRIBIR
  • BORRAR
  • ADMIN.

Ex. (IP: 192.168.0.0/16, LEER)

El ZKS: estados de sesiรณn y duraciรณn

ZKS โ€“ Estados de sesiรณn
ZKS โ€“ Estados de sesiรณn
  • Antes de ejecutar cualquier solicitud, es importante que el cliente debe establecer una sesiรณn con el servicio
  • Todas las operaciones que los clientes envรญan al servicio se asocian automรกticamente a una sesiรณn.
  • El cliente puede conectarse a cualquier servidor del clรบster, pero solo se conectarรก a un รบnico servidor.
  • La sesiรณn proporciona โ€œgarantรญas de pedidoโ€. Las solicitudes en la sesiรณn se ejecutan en orden FIFO.
  • Los estados principales de una sesiรณn son 1) Conectando, 2) Conectado 3) Cerrado 4) No conectado.

Cรณmo instalar ZooKeeper

Paso 1) Haga clic en Continuar para suscribirse
Ve a esto este enlace y haga clic en 'Continuar para suscribirse'

Instalar ZooKeeper

Paso 2) Aceptar los tรฉrminos y condiciones
En la pรกgina siguiente, acepte el acuerdo de licencia.

Instalar ZooKeeper

Paso 3) Mensaje de agradecimiento mostrado
Verรกs el siguiente mensaje

Instalar ZooKeeper

Paso 4) Haga clic en Continuar para configurar
Actualice la pรกgina despuรฉs de 5 minutos y continรบe con la configuraciรณn.

Instalar ZooKeeper

Paso 5) Haga clic en 'Continuar para iniciar'
En la siguiente pantalla, inicie ZooKeeper

Instalar ZooKeeper

Paso 6) ยกFelicitaciones!
ยกEstรกs listo!

Aplicaciones de Apache ZooKeeper

Apache Zookeeper se utiliza para los siguientes fines:

  • Gestionando la configuraciรณn
  • servicios de nombres
  • Elegir al lรญder
  • Poniendo en cola los mensajes
  • Gestionar el sistema de notificaciones.
  • SINCRONIZACIร“N
  • Distribuido Cluster Gestionamiento

Empresas que utilizan Zookeeper

  • yahoo
  • Facebook
  • eBay
  • Twitter
  • Netflix
  • Zynga
  • Nutanix

Desventajas de usar Zookeeper

  • Puede ocurrir pรฉrdida de datos si agrega nuevos servidores Zookeeper
  • No se permite la migraciรณn para los usuarios
  • No ofrecer soporte para la ubicaciรณn y el conocimiento del rack.
  • Zookeeper no le permite reducir la cantidad de pods para evitar la pรฉrdida accidental de datos
  • No se puede cambiar el servicio a la red de host sin una reinstalaciรณn completa cuando el servicio se implementa en una red virtual
  • El servicio no admite cambios en los requisitos de volumen una vez finalizada la implementaciรณn inicial
  • Hay una gran cantidad de nodos involucrados, por lo que podrรญa haber mรกs de un punto de falla.
  • Los mensajes se pueden perder en la red de comunicaciรณn, lo que requiere un software especial para recuperarlos nuevamente.

Preguntas Frecuentes

ZooKeeper coordina las aplicaciones distribuidas proporcionando servicios consistentes de configuraciรณn, nomenclatura, sincronizaciรณn y elecciรณn de lรญder. Elimina la necesidad de crear estas funcionalidades bรกsicas desde cero en cada sistema.

Las herramientas de IA generan la configuraciรณn de ZooKeeper, sugieren el tamaรฑo del conjunto y analizan las mรฉtricas ruok y mntr. Detectan riesgos de divisiรณn de clรบster y proponen scripts de verificaciรณn del estado para los clรบsteres de producciรณn.

Sรญ. Los asistentes de IA analizan los registros de zookeeper.out, reconocen patrones de pรฉrdida de quรณrum y recomiendan ajustes para el tiempo de espera de la sesiรณn. Tambiรฉn elaboran manuales de procedimientos para reinicios graduales y recuperaciรณn de instantรกneas.

Un conjunto es un grupo de servidores ZooKeeper que se ejecutan simultรกneamente. Las operaciones de escritura requieren una mayorรญa, por lo que la mayorรญa de las configuraciones de producciรณn utilizan un nรบmero impar de servidores, como tres, cinco o siete.

Un ZNode es un nodo en el espacio de nombres de ZooKeeper que almacena pequeรฑas cantidades de datos y metadatos. Los ZNodes pueden ser persistentes, efรญmeros o secuenciales, lo que permite bloqueos y patrones de elecciรณn de lรญder.

Kafka 4.0 y el modo KRaft eliminan ZooKeeper y lo reemplazan con un quรณrum de controlador interno basado en Raft. Las nuevas implementaciones usan KRaft, mientras que los clรบsteres mรกs antiguos pueden seguir usando ZooKeeper sin problemas.

ZooKeeper admite autenticaciรณn SASL, Kerberos, transporte TLS y autorizaciรณn basada en ACL. Habilite estas funciones y segmente los conjuntos por inquilino para mantener el aislamiento en entornos compartidos.

Los principiantes comprenden el modelo de datos y la interfaz de lรญnea de comandos en una semana. OperaConfigurar un entorno de producciรณn con instantรกneas, monitorizaciรณn y Kerberos suele requerir entre uno y tres meses de experiencia prรกctica.

Resumir este post con: