Este capítulo presenta las características de los nodos de Zookeeper y escenarios de uso simples. Precisamente debido a estas características de nodos, Zookeeper puede desarrollar diferentes aplicaciones de escenarios.

1. Los nombres de clave de los nodos del mismo nivel son únicos

Ejemplo:

$ ls /
$ create /ejemplo 2

Ya existe/ejemploNodo, al intentar crearlo nuevamente se indicará que ya existe.

2. Al crear un nodo, se debe incluir la ruta completa

Ejemplo:

$ ls /ejemplo
$ create /ejemplo/child 0
$ create /ejemplo/child/ch01 0

3. Al cerrar la sesión, los nodos temporales se eliminan

Ejemplo:

$ ls /ejemplo
$ create -e /ejemplo/echild 0

Al mismo tiempo, en la terminal dos, consulta el nodo:

$ ls /ejemplo

ctrl+cDespués de cerrar la conexión de la terminal uno, consulta en la terminal dos/ejemplo/echildEl nodo desaparece.

$ ls /ejemplo

4. Crear automáticamente nodos secuenciales

Ejemplo:

$ create -s -e /ejemplo 0

5. Mecanismo de watch, escuchar los cambios de nodos

El mecanismo de escucha de eventos es similar al patrón de observador. El flujo de watch consiste en que el cliente registra un watcher en la ruta de un nodo en el servidor, y al mismo tiempo el cliente también almacena el watcher específico. Cuando los datos del nodo o los nodos secundarios cambian, el servidor notifica al cliente y el cliente realiza el procesamiento de devolución de llamada. Atención especial: después de que el evento de escucha se activa una sola vez, el evento deja de ser válido.

Sugerencia:Consulte la sección de comandos comunes, el comando get para escuchar watch. En capítulos posteriores se explicará en detalle el principio de implementación de watch.

6. El comando delete solo puede eliminar capa por capa

Ejemplo:

$ ls /
$ delete /ejemplo

Sugerencia: En las versiones nuevas se puede usardeleteallcomando para eliminar de forma recursiva.

Con las numerosas características de nodos mencionadas anteriormente, Zookeeper puede desarrollar diferentes escenarios de aplicación clásicos, por ejemplo:

  • 1. Publicación/suscripción de datos
  • 2. Equilibrio de carga
  • 3. Coordinación/notificación distribuida
  • 4. Gestión de clústeres
  • 5. Gestión de clústeres
  • 6. Gestión de master
  • 7. Bloqueo distribuido
  • 8. Cola distribuida