ZK初识

ZooKeeper

1. ZK工作原理

Zookeeper的核心是原子广播,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议。

两种模式:

  1. 恢复模式(选主)
  2. 广播模式(状态同步)

1.1 选举

节点有三种类型,leader,follower,observer

​ leader:主节点,负责进行投票的发起和决议,更新系统状态

​ follower:从节点,在主节点挂了之后会参与选举。

​ observer:观察者,不参与选举过程,只是用来连接client,分担压力。

选举过程采取的是半数通过的机制,因此一般都是推荐奇数台机器。

当每次加入新机器的时候就会进入恢复模式,去寻找新的leader,然后进行状态同步。一旦选择了leader那么就会进入广播模式,进行数据的转发。

1.2 同步

​ 广播模式需要保证proposal被按顺序处理,因此zk采用了递增的事务id号(zxid)来保证。所有的提议(proposal)都在被提出的时候加上了zxid。

​ zxid为64位的数字,高32位epoch用来表示leader的关系,低32位来用来递增计数,来保证提议的顺序。

2 特点

2.1 Zookeeper 的读写机制

» Zookeeper是一个由多个server组成的集群
  » 一个leader,多个follower
  » 每个server保存一份数据副本
  » 全局数据一致
  » 分布式读写
  » 更新请求转发,由leader实施

3. 节点类型

» Znode有两种类型,短暂的(ephemeral)和持久的(persistent)
  » Znode的类型在创建时确定并且之后不能再修改
  » 短暂znode的客户端会话结束时,zookeeper会将该短暂znode删除,短暂znode不可以有子节点
  » 持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除
  » Znode有四种形式的目录节点
  » PERSISTENT(持久的)
  » EPHEMERAL(暂时的)
  » PERSISTENT_SEQUENTIAL(持久化顺序编号目录节点)
  » EPHEMERAL_SEQUENTIAL(暂时化顺序编号目录节点)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值