本文主要是介绍ZooKeeper学习---ZAB协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言:ZooKeeper是典型的分布式数据一致性解决方案,旨在将复杂、容易出错的分布式一致性服务封装起来,构成高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。基于CAP理论和BASE理论的支撑,在分布式系统中,我们经常需要对一致性和可用性做出权衡。那么ZooKeeper是通过什么策略来进行取舍权衡的呢?答案就是ZAB协议。
一、什么是ZAB协议?
ZAB协议(即ZooKeeper Atomic Broadcast,ZooKeeper原子消息广播协议)是一种分布式一致性协议,类似于2PC(二阶段提交协议)、3PC(三阶段提交协议)和Paxos,是对一致性和可用性权衡过后的一种事务处理思想。另外,ZAB协议是专门为ZooKeeper设计的一致性协议,并不像Paxos那样具有通用性。
二、ZAB协议的核心?
ZAB协议的核心是定义了对于那些会改变ZooKeeper服务器数据状态的事务请求的处理方式。
ZooKeeper服务器的角色分为三种:
- Leader:全局唯一,负责协调整个ZooKeeper集群。
- Follower:与Leader保持数据同步,并向ZooKeeper客户端提供读服务。
- Observer:与Follower类似,但是Observer不参与Leader选举流程和“过半写”策略。
具体的,ZooKeeper客户端的“读”请求可以
这篇关于ZooKeeper学习---ZAB协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!