zookeeper集群中服务器的角色和状态

zk服务:不同角色执行不同的任务。

在区分zk服务器角色前,先解释几个概念:

1.事务请求:
在zk中,会改变服务器状态的请求称为事务请求(创建节点、更新数据、删除节点、创建会话等等)

2.非事务请求
从zk读取数据但是不对状态进行任何修改的请求称为非事务请求

Leader角色
Leader服务器是zk集群工作的核心,主要工作有两个:

  1. 事务请求的唯一调度者和处理者,保证集群事务处理的顺序性。
  2. 集群内部各个服务器的调度者

Follower角色
Follower是zk集群的跟随者,主要工作有三个:

  1. 处理客户端非事务性请求,转发事务请求给Leader服务器(事务请求都由Leader处理)
  2. 参与事务请求Proposal的投票
  3. 参与Leader选举投票

Observer角色
Observer充当观察者角色,观察zk集群的最新状态变化并将这些状态同步过来,对于非事务请求可以进行独立的处理,对于事务请求,则会转发给Leader服务器进行处理,Observer不会参与任何形式的投票,包括事务请求Proposal的投票和Leader选举的投票。


服务器具有四种状态,分别是LOOKING,FOLLOWING,LEADING,OBSERVING

  • LOOKING
    寻找leader状态
    当前服务器处于该状态时,它会认为当前集群中没有leader,因此需要进入leader选举状态。
  • FOLLOWING
    跟随者状态
    表示当前服务器的角色是Follower角色
  • LEADING
    领导者状态
    表示当前服务器是Leader
  • OBSERVING
    观察者状态
    表示当前服务器角色是Observer

你可能感兴趣的:(zookeeper)