ZooKeeper入门(一)
1 基本概念
1.1 什么是ZooKeeper
zookeeper是为分布式应用所设计的高可用、高性能且一致的开源协调服务
1.2 Zookeeper的特点
-
顺序一致性
- 原子性
- 单一视图
- 可靠性
-
实时性
2 角色
2.1 角色划分
ZooKeeper集群当中,集群中的服务器角色有两种Leader和Learner,Learner角色又分为Observer和Follower
所有角色功能如下
-
领导者(leader),负责进行投票,更新系统状态
-
学习者(learner),包括跟随者(follower)和观察者(observer),
-
follower用于接受客户端请求并向客户端返回结果,在选主过程中参与投票
-
Observer可以接受客户端请求,将写请求转发给leader,但observer不参加投票过程。
-
客户端(client),请求发起方
2.2 为什么要有Observer
ZooKeeper的3.3.3版本以后,又添加了一种新角色Observer。它与follower的唯一区别是,Observer不参与投票,只是简单的接收投票结果。
为什么要这么设计呢?ZooKeeper每添加一台服务时要进行选举,而ObServer没有选举和被选举权,因此,我们增加再多的Observer,也不会影响集群的写性能