Zookeeper
2019-11-09 22:12:10 209 举报
AI智能生成
zk
作者其他创作
大纲/内容
角色组成
Leader
Follower
Observer
znode
节点不能重复
1.永久节点(PERSISTENT )
2.临时节点(Ephemeral)
3.永久有序(Persistent_Sequential)
4.临时有序(Ephemeral_Sequential)
源码(org.apache.zookeeper.CreateMode)
stat(ZNode数据信息)
czxid
节点创建时的zxid
mzxid
节点最新一次更新发生时的zxid
ctime
节点创建时的时间戳.
mtime
节点最新一次更新发生时的时间戳.
dataVersion
节点数据的更新次数
cversion
其子节点的更新次数
aclVersion
节点ACL(授权信息)的更新次数
ephemeralOwner
dataLength
节点数据的字节数
numChildren
子节点个数.
集中式系统
一台或者多台计算器组成中心节点
数据集中存这个中心节点,所有业务单元部署在这个中心节点
分布式系统
1.分布性
空间上随意分布,分布情况随时变动
2.对等性
集群中没有主从之分
数据副本
服务副本
3.并发性
4.缺乏全局时钟
5.故障总是会发生
6.分布式环境出现的问题
通信异常
网络分区
三态
节点故障
watcher
KeeperState
SyncConnected
EventType
None
NodeCreated
NodeDeleted
NodeDataChanged
NodeChildChanged
Disconnected
EventType
None
Expired
EventType
None
AuthFailed
EventType
None
运维
zoo.cfg参数
tickTime
syncLimit
initLimt
dataDir
dataLogDir
clientPort
Server.A=B:C:D
常用命令
ls
ls 命令来查看某个目录包含的所有文件
ls2
ls2 命令来查看某个目录包含的所有文件,与ls不同的是它查看到time、version等信息
create
创建znode,并设置初始内容
get
获取znode的数据
set
修改znode内容
delete
删除znode
quit
退出客户端
help
帮助命令
rmr
递归删除 可以删除包含有子节点的
源码
org.apache.zookeeper.ZooKeeperMain
ACID
原子性(Atomicity)
全部执行成功
全部不执行
一致性(Consistency)
一个事务在执行前后,必须使数据库事务从一个一致性状态变为另一个一致性状态
隔离性(Isolation)
并发环境中,事务是互相隔离的,一个事务的执行不能被其他事务干扰
持久性(Durability)
事务一旦提交,它对数据库中对应数据的状态变更应该永久的
CAP定理
一致性(Consistency)
分布式节点多个数据副本应该是一致的
可用性(Availablity)
在有限时间返回结果
返回结果指的是正常的响应结果
分区容错性(Partiton tolerance)
分布式系统需要网络分区故障时,仍然需要对外提供一致性和可用性
一个分布式系统无法保证满足这三个需求,只能满足其中的两项
BASE理论
基本可用
出现故障,允许出现损失部分可用性
响应时间上的损失
功能上的损失
弱状态
最终一致性
因果一致性
读写之所写
会话一致性
单调读一致性
单调写一致性
一致性协议
协议
2PC协议
大部分关系型数据库使用此协议
阶段1:提交事务请求
1.事务询问
2.执行事务
3.各参与者向协调者反馈事务询问的响应
阶段2:执行事务提交
1.执行事务提交
1.发送提交请求
2.事务提交
3.反馈事务提交结果
4.完成事务
流程图
2.中断事务
1.发送回滚请求
2.事务回滚
3.返回事务回滚结果
4.中断事务
流程图
缺点:
协调者向参与者发送提交请求时,如果这时候局部网络异常,会导致部分参与者事务提交,一部分失败
协调者一旦出问题,系统瘫痪
3PC协议
2PC协议的改进版本
阶段1:CanCommit
1.事务询问
2.各参与者向协调者反馈事务询问的响应
阶段2:执行事务预提交
1.发送预提交请求
2.事务预提交
3.各参与者向协调者反馈事务执行的响应
阶段2:中断事务
1.发送中断请求
2.中断事务
阶段3:执行提交
1.发送提交请求
2.事务提交
3.反馈事务提交结果
4.完成事务
阶段3:中断事务
1.发送中断请求
2.事务回滚
3.反馈事务回滚结果
4.中断事务
Paxos算法
一种提高分布式容错性的一致性算法
协调者
统一调度所有分布式节点的执行逻辑
参与者
这些被调度的分布式节点
0 条评论
下一页