1.首先明确这个监听器原理是谁在监听谁?
客户端通过zookeeper监听节点的数据变化。
(1)在Zookeeper的API操作中,创建main()主方法即主线程;
(2)在main线程中创建Zookeeper客户端(zkClient),这时会创建两个线程:
线程connet负责网络通信连接,连接服务器;
线程Listener负责监听;
(3)客户端通过connet线程连接服务器;
图中getChildren("/" , true) ," / "表示监听的是根目录,true表示监听,不监听用false
(4)在Zookeeper的注册监听列表中将注册的监听事件添加到列表中,表示这个服务器中的/path,即根目录这个路径被客户端监听了;
(5)一旦被监听的服务器根目录下,数据或路径发生改变,Zookeeper就会将这个消息发送给Listener线程;
(6)Listener线程内部调用process方法,采取相应的措施。
监听器原理的应用场景有:
统一配置管理
集群管理