Mi información de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
El modelo de datos de ZooKeeper tiene características similares a la estructura de árbol de un sistema de archivos, pero está diseñado específicamente para aplicaciones distribuidas.
Las siguientes son las características principales de las estructuras de datos de ZooKeeper:
Espacio de nombres jerárquico : ZooKeeper proporciona un espacio de nombres jerárquico, similar a un sistema de archivos. Cada nodo tiene una ruta única en la jerarquía.
Nodo Z : Cada nodo de datos en ZooKeeper se llama ZNode (similar a un archivo o directorio en un sistema de archivos). ZNode puede tener nodos secundarios, formando una estructura jerárquica.
Nodo persistente : Los nodos persistentes son el tipo de nodo más común. Una vez creados, persisten a menos que el cliente los elimine explícitamente. Incluso si se reinicia el servicio ZooKeeper, los nodos persistentes no se perderán.
Secuencial persistente : El nodo secuencial persistente es una extensión del nodo persistente y tiene naturaleza secuencial. Cuando se crea, ZooKeeper agregará un número de secuencia mantenido por el nodo principal al final del nombre del nodo para garantizar la unicidad global. Este tipo de nodo se suele utilizar para implementar escenarios que requieren una disposición ordenada, como colas distribuidas.
Efímero : El ciclo de vida del nodo temporal está vinculado a la sesión del cliente. Si la sesión de un cliente caduca debido a problemas de red o una falla del cliente, ZooKeeper eliminará automáticamente todos los nodos temporales creados por la sesión. Esta característica hace que los nodos efímeros sean ideales para implementar mecanismos de bloqueo y elección de líderes.
Secuencial efímero : Los nodos secuenciales temporales combinan las características de los nodos temporales y los nodos secuenciales persistentes. Tienen una vida útil limitada y se les asigna un número de serie cuando se crean. Esto los hace muy útiles al implementar tareas de sincronización y coordinación distribuidas, como implementar bloqueos u otras primitivas de sincronización.
Nodo contenedor (contenedor) : Un nodo contenedor es un ZNode especial que no almacena datos pero puede contener nodos secundarios. Estos nodos se pueden utilizar para organizar y estructurar datos, de forma similar a los directorios de un sistema de archivos.
Nodo Interior : Los nodos internos son nodos principales en ZooKeeper y pueden contener nodos secundarios. Se diferencian de los nodos hoja en que los nodos hoja se utilizan normalmente para almacenar datos, mientras que los nodos internos se utilizan para mantener jerarquías.
Nodo hoja : Los nodos hoja son los nodos finales de la jerarquía ZNode y generalmente se usan para almacenar datos. No tienen nodos secundarios.
Nodo TTL (Tiempo de vida) : Los nodos TTL son una nueva característica introducida en la versión 3.5.0 de ZooKeeper. Permiten a los nodos establecer un tiempo de vida (TTL). Cuando el TTL caduque, si el nodo es un nodo temporal, se eliminará; si es un nodo persistente, se convertirá en un nodo temporal y se eliminará.
ACL (lista de control de acceso):ZNode puede establecer diferentes permisos de acceso para controlar qué usuarios o grupos de usuarios pueden leer o modificar nodos.
Mecanismo de vigilancia : El cliente puede configurar Watcher en ZNode. Cuando ZNode cambia (como cambios de datos, los nodos secundarios aumentan o disminuyen, etc.), todos los clientes con Watcher configurado recibirán notificaciones.
persistencia : Los nodos pueden ser persistentes, lo que significa que los nodos persistentes todavía existen incluso si se reinicia el servicio ZooKeeper. Si el nodo es efímero, el nodo se elimina automáticamente cuando finaliza la sesión del cliente que lo creó.
almacenamiento de datos : Cada ZNode puede almacenar datos, como valores de cadena o datos binarios. Los clientes pueden leer y escribir estos datos.
secuencialidad : Al crear un nodo secuencial, ZooKeeper agrega un número al nombre del nodo, que comienza en 0 y aumenta cada vez que se crea un nuevo nodo. Esto garantiza nombres de nodo únicos y se puede utilizar para implementar pedidos FIFO.
control de versiones : Cada ZNode tiene un número de versión. Siempre que se modifiquen los datos del nodo, se incrementará el número de versión. Esto se puede utilizar para comprobar si un nodo se ha modificado después de haber sido leído.