配置参数解读
- tickTime=2000:通信心跳时间,zookeeper服务器与客户端心跳时间,单位毫秒。
- initLimit=10:LF初始通信时限,即tickTime*10为最大心跳数。超过则表示leader和Follower初始化连接失败。
- syncLimit=5:LF同步通信时限。表示初始化之后的连接心跳最大数。初始化给的时间多是乘10,初始化之后是乘5.
- dataDir:保存zookeeper中的数据。默认存储在tmp目录。容易被Linux系统定期删除,所以一般不用默认的tmp目录。
- clientPort=2181:客户端连接端口,通常不做修改。
监听原理
- 首先要有一个main()线程
- 在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener)。
- 通过connet线程将注册的监听时间发送给Zookeeper.
- 在zookeeper的注册监听器列表中将注册的监听时间添加到列表中
- zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程。
- listener线程内部调用process()方法。
注意:注册一次监听,只能监听一次,向再次监听,需要再次注册