2.1 Zookeeper集群概念
1.由⼀个领导者(Leader),多个跟随者(Follower)组成的集群
2.集群中只要有半数以上节点存活,Zookeeper集群就能正常服务
3.全局数据⼀致性,每个server保存⼀份相同的副本,client⽆论链接哪个server,得到的数据都是⼀致的
4.更新请求顺序执⾏,来⾃同⼀个client的请求按顺序执⾏
5.数据更新原⼦性,⼀次数据更新要么成功要么失败
6.实时性,在⼀定时间范围内,client能读到最新数据
特点: zk集群服务在依次启动服务时,集群还没有开始对外提供服务。只有选举出Leader后,集群才开始对外提供服务
2.2 Zookeeper Leader选举概念
2.2.1 定义:
ZooKeeper 功能上是⼀个分布式系统的协调中间件,本质上其实就是⼀个存储中间件,通过⾃定义的客户端和服务端的通信,达到⼀些订阅⽅⾯的额外功能
2.2.2 Zookeeper 集群节点⻆⾊:
- Leader(领导者):负责写⼊请求,发起选举;
2. Follower(跟随者):响应查询,转发写⼊请求,参与选举和写⼊投票
3. ObServer(观察者):响应查询,转发写⼊请求2.2.3缺点:
ZooKeeper 集群在处理客户端读写时,写请求最终是⼀定落在Leader节点上的,这也意味着⽆论 ZooKeeper 的集群有多⼤,Leader节点写瓶颈都会存在,这也是 ZooKeeper 并不适合做较⼤规模的存储的原因。2.2.4优点:
- ⼀致性实现⽐较简单
2. ⾼可⽤:当Leader节点宕机时,zk会⾃动从集群中快速进⾏Leader选举
2.3 Zookeeper集群服务器状态
Zookeeper 集群状态服务器具有四种状态分别是:
LOOKING,FOLLOWING,LEADING,OBSERVING。
1.LOOKING:寻找leader状态。当前服务器处于该状态时,它会认为当前集群中没有
leader,因此需要进⼊leader选举状态。
2.FOLLOWING:跟随者状态。表示当前服务器的⻆⾊是Follower⻆⾊
3.LEADING:领导者状态。表示当前服务器是Leader
4.OBSERVING: 观察者状态。表示当前服务器⻆⾊是Observer