Fork me on GitHub

Zookeeper 应用

1. 应用场景

  • Zookeeper提供的服务包括:统一命名服务,统一配置管理,统一集群管理,服务器节点动态上下线,软负载均衡等。

2. 配置修改

// 安装路径下的:conf/zoo_sample.cfg 修改为 zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/自定义路径/zookeeper-3.4.14/data
// 日志
dataLogDir=/自定义路径/zookeeper-3.4.14/datalog
// 端口
clientPort=2181

3. 操作单节点 Zookeeper

// 3.1. 启动Zookeeper
bin/zkServer.sh start

// 3.2. 查看进程是否启动
jps

// 3.3. 查看状态
bin/zkServer.sh status

// 3.4. 启动客户端
bin/zkCli.sh

// 3.5. 退出客户端
quit

// 3.6. 停止 Zookeeper
bin/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()方法;

posted @ 2019-06-10 20:47  小a的软件思考  阅读(152)  评论(0编辑  收藏  举报