[cuidador del zoológico] 3.zookeeper 监听


Zookeeper tiene dos tipos de monitoreo

  • Supervisar cambios en el directorio de nodos (agregar y eliminar nodos)

    ls -w / ruta

Cree un nodo permanente de / sanguo / shuguo (nota: los nodos temporales no pueden tener hijos)

[zk: localhost:2181(CONNECTED) 5] create -s /sanguo/shuguo  joke
Created /sanguo/shuguo0000000005

zkClient escucha los cambios en el directorio / sanguo

[zk: localhost:2181(CONNECTED) 4] ls -w /sanguo
[shuguo, shuguo0000000002, shuguo0000000003, shuguo0000000004]
[zk: localhost:2181(CONNECTED) 5]
WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/sanguo

  • Monitorear los cambios en los datos del nodo (modificar el valor del nodo)

    obtener -w / ruta

El cliente modifica el valor de / sanguo

[zk: localhost:2181(CONNECTED) 0] get /sanguo
古代中国
[zk: localhost:2181(CONNECTED) 1] set /sanguo "古中国"

El cliente zkClient monitorea el cambio del valor de / sanguo

[zk: localhost:2181(CONNECTED) 20] get -w /sanguo
古代中国
[zk: localhost:2181(CONNECTED) 21]
WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/sanguo

Nota: 1. El cliente primero debe registrarse para escuchar.
2. Si el directorio o los datos cambian, el servidor informa al cliente. Una vez que el cliente recibe la notificación del evento de escucha, no continuará monitoreando.
3. Necesita volver a registrarse para monitorear.



Implementación del mecanismo de monitoreo del cuidador del zoológico

1. Cree un cliente zkClient.

2. Inicie dos subprocesos en el método main () de zkClient.
connect thread: conéctese a zkServer y envíe solicitudes de monitoreo. (Solicitud para monitorear el directorio de nodos o los datos de los nodos).
Escuchar hilo: se utiliza para esperar el procesamiento de la notificación de escucha de zkServer.

3. El hilo de conexión de zkClient se conecta a zkServer y envía una solicitud para monitorear eventos.

4. Después de recibir la solicitud de monitoreo de zkClient, zkServer establece una lista de monitoreo y registra el evento de monitoreo en la lista.

5. Una vez que zkServer encuentra la ocurrencia del evento de monitoreo registrado, notificará inmediatamente a zkClient.

6. El hilo de escucha de zkClient llama a process () para procesar la notificación de monitoreo.

[cuidador del zoológico] 3.zookeeper 监听

Supongo que te gusta

Origin blog.51cto.com/phpme/2603710
Recomendado
Clasificación