Zoopkeeper
2020-04-26 17:05:04 0 举报
AI智能生成
Zookeeper框架
作者其他创作
大纲/内容
第一章 Zookeeper入门<br>
1.1 概述
Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的框架<br>
1.2 特点
一个Leader和多个Follower组成的集群<br>
Leader负责进行投票的发起和决议,更新系统状态<br>
Follower用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票<br>
集群中有半数以上的节点存活,集群才能正常运行<br>
数据一致性:每一个Server的数据都是一致的
顺序一致性:来自同一个Client的请求,按照发送顺序执行<br>
原子性:一次更新,要么成功,要么失败
实时性:在一定时间范围内,Client能访问到最新的数据
1.3 数据结构<br>
树形结构
1.4 应用场景
统一命名服务
统一配置管理
统一集群管理
服务器动态上下线
软负载均衡<br>
第二章 Zookeeper本地模式安装<br>
2.1 本地模式安装<br>
2.1.1 安装前准备
安装jdk<br>
解压安装包到指定目录
创建软连接
2.1.2 配置修改
2.1.3 操作Zookeeper
启动Zookeeper
查看状态<br>
启动客户端<br>
退出客户端
停止Zookeeper<br>
2.2 配置参数解读
解读zoo.cfg文件中参数的含义<br>
tickTime=2000,通信心跳数<br>
initLimit=10,LF初始通信时限<br>
syncLimit=5,LF同步通信时限<br>
dataDir,数据文件目录+数据持久化路径<br>
clientPort=2181,客户端连接服务器端口<br>
第三章 Zookeeper内部原理<br>
3.1 选举机制<br>
半数机制
当已有Leader时,后启动的服务器均为Follower
3.2 节点类型
持久化目录节点<br>
客户端与Zookeeper断开后,依然存在的节点<br>
持久化顺序编号目录节点
且带顺序编号
临时目录节点<br>
客户端与Zookeeper断开后,节点被删除
临时顺序编号目录节点
且带顺序编号
3.3 stat结构体
czxid- 引起这个znode创建的zxid,创建节点的事务的zxid
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子节点数量
3.4 监听器原理
首先有一个main线程
在main线程中创建Zookeeper客户端,这时会创建两个线程,一个负责网络连接通信(connect),一个负责监听(listener)<br>
通过connect线程将注册的监听事件发送给Zookeeper<br>
在Zookeeper的注册监听列表中将注册的监听事件添加到列表中<br>
Zookeeper监听到数据或路径有变化,就会将这个消息发送给listener线程<br>
listener线程内部调用了process()方法<br>
3.5 写流程
Client向Zookeeper的Server上写数据,发送一个写请求<br>
若Server不是Leader,则将写请求转发给Leader,Leader再广播给所有Follower处理,Follower处理完成后,会通知Leader<br>
当Leader接收到大多数Follower的写成功,则默认数据写成功,并告诉Server<br>
Server进一步通知Client,数据写入成功
第四章 Zookeeper实战
4.1 分布式安装部署<br>
4.1.1 解压安装<br>
解压安装包
zoo.cfg文件重命名
创建zkData<br>
创建软连接
4.1.2 配置zoo.cfg文件
具体配置
配置参数解读<br>
4.1.3 集群操作<br>
创建myid文件,并修改myid值<br>
集群分发Zookeeper
分别启动Zookeeper
查看状态
4.2 客户端命令行操作
启动客户端
查看当前znode中所包含的内容<br>
查看当前节点数据并能看到更新次数等数据
创建普通节点
获得节点的值
创建短暂节点
创建带序号的节点
修改节点数据值
节点的值变化监听
节点的子节点变化监听(路径变化)
删除节点
递归删除节点
查看节点状态
4.3 API应用
创建Zookeeper客户端
创建子节点<br>
获取子节点
判断znode是否存在
收藏
0 条评论
下一页