Zookeeper 工作机制和底层原理解析

基于观察者模式设计的分布式服务管理框架负责存储管理大家都关系的数据,接收观察者的注册,一旦数据发生变化,zookeeper负责通知已经在zookeeper上注册的那些观察者做出相应的反应,

服务器(服务提供方)启动时去注册信息(其实都是创建临时节点),

作用:存数据   通知

数据模型:

Zookeeper数据模型结构与linx文件系统很类似,整体上可以看作是一颗树,每个节点称做一个znode,每个节点默认存储1兆数据,每个节点都可以通过其路径唯一标识

Zookeeper接收请求处理流程: 请求---日志----持久化---更新datatree

读数据是从内存读取

底层原理

1.采用了原子广播协议(zab)来保证内部数据一致性(分布式带来数据不一致问题)

2.投票选取机制,通过pk选取,首先pk数据谁是最新(zxid),相对情况比较myid(开发定义)

Zab协议(理论)-----》zookeeper(实现)

Zab协议原理:

  1. leader 领导者选举机制
  2. Ack过半机制
  3. 2PC两阶段提交机制
    1. 预提交 用来占资源
    2. Ack(过半机制)
    3. 提交

4.同步机制

集群投票,每个zookeep都有自己的投票箱,先给自己投,再按照上面的规则投

原子性:强一致性,弱一致性,最终一致性

强一致性:是指在在数据同步的时候加锁,请求访问时先等数据同步完,然后在解锁

最终一致性:是指读数据的时候,隔断时间就会读数据,查看数据是否一致。

弱一致性:读的数据可能不一致,不会隔断时间读数据

特点:

1)Zookeeper:一个领导(leader),多个跟随者(Follower)组成的集群

2)集群中只要有半数以上节点存活,zookeeper集群就能正常服务

3)全局数据一致:每个server保存一份相同的数据剧本,client无论连接到哪个servier,数据都是一致的

4)更新请求的顺序进行,来自同一个client的更新请求按照发送顺序依次执行

5)数据更新原子性,一次数据更新要么成功,要么失败

不解可以评论留言或者加微信(yswsxf1314)讨论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值