Apache ZooKeeper Notificações e Watches
Como o ZooKeeper é tipicamente acessado como um serviço remoto, o acesso aos znodes todas as vezes que um cliente precisa saber algum dado do znode, tornaria muito custosa a manutenção, aumentaria muito o tempo de latência (tempo gasto entre a chamada e a resposta) e ainda iria implicar em mais operações durante a instalação do ZooKeeper.
Watches (Notificador)
O ZooKeeper pode te notificar quando um znode, ou algum de seus filhos, forem modificados. Para registrar um notificador no seu znode você deve utilizar os comandos get ou stat para acessar o conteúdo atual ou os metadados daquele znode, e com isso passar um novo parâmetro registrando o notificador. Para registrar um notificador em um znode filho , voce deve passar o mesmo parametro que foi usado ao pegar o filho com o comando ls.
Ao modificar este znode, ou algum filho dele, você verá a seguinte mensagem no console:create /demo/notifique dataCreated /notifiqueget /demo/notifique truedata
WATCHER
WatchedEvent state:SyncConnected type:NodeDataChanged path:/notifiqueAtente ao detalhe de que um notificador só é disparado uma vez, com isso, se você quiser ser notificado nas próximas notificações você deverá resetar o notificador a cada modificação. O notificador permite que você utilize o ZooKeeper para implementar um sistema assíncrono, baseado em eventos, e notificar os nós quando a sua cópia local dos dados estiver ultrapassada/desatualizada.