Zookeeper客户端可以设置监听,一边在节点的值改变时可以及时的获取到相应的信息。
当我们要确认服务端的一个节点是否改变时,最为常用的方法便是轮询
但是采用轮询的方式容易占用服务端的资源,因为每一次访问都要返回一个一次对象的值,且大多情况下这些访问都是无意义的。 Zookeeper 采用了监听机制来替换轮询的方式来获取节点的状态更新。在监听机制中,客户端需要向服务端注册所需要的接受通知的节点,并在该节点上设置监听。
这种方式相比较于传统的轮询的方式,能够减少很多无意义的操作,大大提高了服务器的利用率。 但是 Zookeeper 的监听是一次性的,如果需要多次监听,则需要在获得通知后重新设置监听。
客户端1 向服务端设置监听
# 查看目录下的节点
ls /
# 对 testzk 节点设置监听
get -w /testzk
客户端2 修改节点的值
# 修改 testzk 节点的值
set /testzk 88760
客户端1 获得通知