- Watch event只触发一次;
- Watch event是由服务端发送给客户端的(异步发送),并且提供一顺序保证:即当为某个数据的改变设置了Watch,客户端不会在Watch事件触发之前看到这个改变;
- Watch event 只在设置了Watch的数据发生改变时触发;
- 由于Watches只触发一次,并且client在获取到event和注册一个新的Watch之间有个延迟,所以你不可能可靠的看到每一次znode的变化。比如:当在获取到一个event和注册一个新的watch之间服务端的znode发送了多次变化的情况。
There is one case where a watch may be missed: a watch for the existence of a znode not yet created will be missed if the znode is created and deleted while disconnected.
-- 当一个Watch观察一个不存在的znode是否存在时,当session断开连接,而此时znode被创建又被删除,这个Watch event可能会丢失