目录
1.创建配置中心
通过其他客户端对文件进行监听,第一个窗口
第二次进入服务器:
cd /usr/local/zookeeper/apache-zookeeper-3.8.0-bin
bin/zkServer.sh start conf/zoo.cfg
bin/zkCli.sh
# 第一个窗口创建节点并修改节点内容
[zk: localhost:2181(CONNECTED) 1] create /config {"key":"anykey","url":"http://redis.com"}
Created /config
[zk: localhost:2181(CONNECTED) 2] get -w /config
{"key":"anykey","url":"http://redis.com"}
[zk: localhost:2181(CONNECTED) 3] set /config {"key":"anykey","url":"redis://redis.com"}
第二个窗口监听,先输入get -w /config监听节点,之后在第一个窗口修改以后第二个窗口会收到通知,但是这种监听只能生效一次
[zk: localhost:2181(CONNECTED) 0] get -w /config
{"key":"anykey","url":"redis://redis.com"}
[zk: localhost:2181(CONNECTED) 1]
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged path:/config
2.使用zookeeper客户端解决只能监听一次的问题
2.1 客户端编写
功能展示:建立了zookeeper客户端并且能动态感知数据变化
引入jar包,版本跟服务端保持一致
客户端代码编写,main线程执行以后,会运行zookeeper执行的异步线程
2.2 配置类编写
创建配置类并且
实现一个循环监听的功能。
基于版本号改变数据,如果版本号不对,无法修改数据。
基于版本号删除和获取数据
3.curator客户端连接zookeeper
pom.xml引入curator
连接客户端
递归创建子节点
protection模式使用withProtection生成一个UUID,防止创建一个重复节点。
设置节点。
删除节点。
子节点
指定线程池
4.搭建集群环境
集群三种角色:leader负责读写 follower负责读数据,在leader挂掉的时候选举其中之一会成为leader,observer跟leader相同数据,但只负责读数据。
创建文件夹zk1,zk2,zk3,zk4,并生成myid唯一ID
修改zoo1.cfg
修改zoo1.cfg文件添加下图配置
修改第二个配置文件,第三个配置文件依次如下图
依次启动服务器
依次查看服务器状态
连接服务器
4.1 zookeeper客户端连接集群环境
集群配置
尝试重连集群环境
查看服务器连接端口
关闭服务器查看重连机制
测试集群
4.2 集群动态配置