1. 应用场景
- Zookeeper提供的服务包括:统一命名服务,统一配置管理,统一集群管理,服务器节点动态上下线,软负载均衡等。
2. 配置修改
// 安装路径下的:conf/zoo_sample.cfg 修改为 zoo.cfgtickTime=2000initLimit=10syncLimit=5dataDir=/自定义路径/zookeeper-3.4.14/data// 日志dataLogDir=/自定义路径/zookeeper-3.4.14/datalog// 端口clientPort=2181
3. 操作单节点 Zookeeper
// 3.1. 启动Zookeeperbin/zkServer.sh start// 3.2. 查看进程是否启动jps// 3.3. 查看状态bin/zkServer.sh status// 3.4. 启动客户端bin/zkCli.sh// 3.5. 退出客户端quit// 3.6. 停止 Zookeeperbin/zkServer.sh stop
4. Zookeeper Shell命令操作
// 4.1. 查看当前 Znode 中所包含的内容ls /// 4.2. 查看当前节点详细数据ls2 /// 4.3. 创建两个普通节点create /node001 "realData"create /grandfather/father "xiaoming"// 4.4. 获得节点的值get /grandfather/father// 4.5. 修改节点数据值set /grandfather/father "xiaowu"// 4.6. 删除节点delete /grandfather/father// 4.7. 递归删除节点rmr /grandfather
5. 监听器原理
- 首先,需要有一个main()线程;
- 在main线程中创建Zookeeper客户端,这时,就会创建两个线程:一个负责网络连接通信(connect),一个负责监听(listener);
- 通过connect线程将注册的监听事件发送给Zookeeper;
- 在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中;
- Zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程;
- listener线程内部调用了process()方法;