Zookeeper客户端使用与经典应用场景

目录

1.创建配置中心

 2.使用zookeeper客户端解决只能监听一次的问题

2.1 客户端编写

 2.2 配置类编写

 3.curator客户端连接zookeeper

4.搭建集群环境

 4.1 zookeeper客户端连接集群环境

 4.2 集群动态配置


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 集群动态配置

 

 

猜你喜欢

转载自blog.csdn.net/qq_21575929/article/details/125772804