zookeeper 核心思想

来源:互联网 发布:真人录音软件 编辑:程序博客网 时间:2024/05/09 19:25

核心思路,架构

 zookeeper的核心思想是提供一个非锁机制的Wait Free的用于分布式系统同步的核心服务,提供简单的文件创建读写操作接口,其系统核心本身对文件读写并不提供加锁互斥的服务,但是提供基于版本比对的更新操作,客户端可以基于此自己实现加锁逻辑。客户端可以连接任意zookeeper服务节点来读写数据,zookeeper内部会分为LeaderFollower角色。

所谓wait-free,即等待无关,慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。

Zookeeper使用简单的同步策略,通过以下两条基本保证来实现数据的一致性:

  • 全局串行化所有的写操作
  • 保证同一客户端的指令被FIFO执行(以及消息通知的FIFO

 

客户端尽可能通过Cache和消息通知机制来减少与服务器之间不必要的信息沟通,来减轻服务器负担

 

数据更新操作需要服务器Leader节点协同Slave节点通过ZAB协议(基本就是两阶段提交)进行全局广播来实现,因此随着Slave节点增加,性能是下降的。

 

数据读操作可以由任意服务器节点提供,如果不是Lead节点,读操作本身不保证数据是最新的,但是可以通过一个Sync(大概就是一个空的写操作)+read的模式来实现对最新数据的读取(由前述两条基本保证可推得)

 

Zookeeper自身文件系统维护在内存中,通过定期SnapshotLog记录来实现灾难恢复


原创粉丝点击