4.6 监听器原理

监听器原理简介

  1. 首先要有一个main()线程
  2. main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener)。
  3. 通过connect线程将注册的监听事件发送给Zookeeper
  4. Zookeeper的注册监听器列表中将注册的监听事件添加到列表中。
  5. Zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程。
  6. listener线程内部调用了process()方法。

监听器类型

在 Zookeeper 中, 所有读的操作都可以设置监听器. (getData(), getChildren(), exists()).

设置监听器的时候, 有三点需要注意:

  1. 设置一个监听器只能触发一次.

    所以, 如果想一直监听的话, 需要在监听器的回调函数执行结束之后, 再次设置监听.

  2. 当事件发生的时候, 事件会发送给那个设计监听的客户端.

    没有设置监听器的是不会得到事件的.

  3. 不同的监听数据是不一样的.


  1. exists() 可以监听到这个节点的创建, 删除, 和节点存储的数据的变化

  2. getData() 可以监听到节点的删除,和节点存储的数据的变化

  3. getChildren() 可以监听到节点的删除和节点的子节点的变化(创建和删除)

Copyright © 尚硅谷大数据 & 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-11-08 08:23:33

results matching ""

    No results matching ""