学习视频资源地址:https://www.bilibili.com/video/BV1PW411r7iP?p=2&spm_id_from=pageDriver
一、先看理论
1、Zookeeper的工作机制
2、Zookeeper的特点
3、Zookeeper的数据结构
4、什么时候用Zookeeper
- 统一命名服务
- 统一配置管理
- 统一集群管理
- 服务器动态上下线
- 软负载均衡
5、Zookeeper配置文件参数说明
5、Linux安装Zookeeper
6、Zookeeper内部原理
(1)Zookeeper选举机制
(2)节点类型
7、Zookeeper集群安装
- 首先上面的单机安装要先搞明白
- 然后建立三个data数据文件
- 修改配置
- 配置服务器编号
- 配置zoo.cfg文件【包括zoo.cfg,zoo2.cfg,zoo3.cfg】
这个hadocp是你自己的服务器id地址
8、Zookeeper的start结构体
- 使用get命令
[zk: localhost:2181(CONNECTED) 12] get /zk-huey
000
cZxid = 0x20000007c
ctime = Wed Mar 04 22:01:46 CST 2015
mZxid = 0x20000007c
mtime = Wed Mar 04 22:01:46 CST 2015
pZxid = 0x200000080
cversion = 4
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 4
输出的第一行是ZNode的数据内容,后面则是ZNode的状态信息。状态信息的属性说明如下:
- czxid-创建节点的事务zxid
每次修改ZooKeeper状态都会收到一个zxid形式的时间戳,也就是ZooKeeper事务ID。
事务ID是ZooKeeper中所有修改总的次序。每个修改都有唯一的zxid,如果zxid1小于zxid2,那么zxid1在zxid2之前发生。 - ctime - znode被创建的毫秒数(从1970年开始)
- mzxid - znode最后更新的事务zxid
- mtime - znode最后修改的毫秒数(从1970年开始)
- pZxid-znode最后更新的子节点zxid
- cversion - znode子节点变化号,znode子节点修改次数
- dataversion - znode数据变化号
- aclVersion - znode访问控制列表的变化号
- ephemeralOwner- 如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0。
- dataLength- znode的数据长度
- numChildren - znode子节点数量
9、Zookeeper监听原理
10、Zookeeper写数据流程
11、API的使用
既然要去使用肯迪要导入依赖
(1)创建客户端连接
(2)创建节点
(3)获取子节点并监听
(4)判断节点是否存在
(5)监听服务器节点动态上下线
-
其实不管是服务器和客户端相对于集群都是客户端
-
注册案例【相当于服务注册上集群】
- 首先肯定要连接Zookeeper客户端
- 注册节点
- 业务逻辑处理
- 首先肯定要连接Zookeeper客户端
-
代码实现二【相当于客户端监听】
- 同样的连接
- 注册监听
- 业务逻辑处理
- 同样的连接