watcher机制是zookeeper的一个重要功能。客户端可以在znode上面设置watcher,当znode发生变化时,客户端会收到zookeeper server的通知,然后客户端可以根据znode的变化做出业务上的改变。
watch是一次性的,触发后,需要重新设置。
zookeeper可以通过getData, exists以及getChildren设置watch,其中,getData和exists可以设置znode的数据watch,getChildren可以设置znode的子节点状态watch。
create, delete以及setData会触发watch。
setData会触发数据watch,create会触发数据watch,以及znode的父节点上面的子节点状态watch,delete会触发znode本身的子节点状态watch和数据watch,同时还会触发znode的父节点的子节点状态watch。
refrence
https://zookeeper.apache.org/doc/current/zookeeperProgrammers.html