ZooKeeper简介

Zookeeper 分布式的服务框架,解决分布式集群中应用系统的一致性问题。

基于类似文件系统的目录节点树方式的数据存储

1. 维护和监控存储数据状态的变化
2. 通过监控数据状态的变化,达到基于数据的集群管理

Zookeeper通过一种和文件系统类似的层级命名空间,来让分布式进程协同工作。命名空间由数据寄存器(Znodes)组成

Zookeeper的数据是存储在内存中的

Zookeeper中的角色

  1. Leader 负责进行投票的发起和决议,更新系统状态
  2. Learner
    2.1 Follower 接受客户请求,并向客户端返回结果
    2.2 observer 接受客户端连接,将写入请求转发,Leader不参与投票,只同步Leader的状态
    (observer的目的是为了扩展系统,提高读取速度)
  3. Client 代表请求发送方

工作原理:原子广播(Zab协议)
Zab协议:
1. 恢复模式:(选主)服务启动或Leader奔溃
2. 广播模式:(同步)保证Leader与Server有相同的系统状态
3. 事务ID:Zxid epoch(高32位)逆增计数(低32位)【64位的数字】
每个Leader都有一个新的epoch表示当前属于哪一个Leader

  1. Server工作过程的三种状态:

LOOKING:不知道Leader是谁,正在搜索
LEADING:当前Server即为选举的Leader
FOLLOWING:Leader已选举出,当前Server与之同步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值