Open luoxn28 opened 6 years ago
zk集群中,有3种角色,分别是Leader、Fllower和Observer。
Leader
Fllower
Observer
Leader服务器是整个zk集群的核心,主要工作是如下两个:
使用责任链模式来处理客户端请求是zk服务器的一大特色,每个服务器启动的时候,都会进行请求处理链的初始化,Leader服务器请求处理链如下图:
责任链模式
Leader与每个Follower/Observer都建立一个TCP长连接,同时会为每个TCP长连接创建一个名为LearderHandler的实体,用来表示Leader与它们之间的连接信息。LearderHandler主要负责Leader和Follower/Observer之间的一系列网络通信,包括数据同步、请求转发和Proposal投票。
Follower是Leader的跟随者,主要职责有以下3个:
和Leader一样,Follower也采用了责任链模式处理请求,由于不需要事务请求的投票处理,流程相对简单一点。
Observer是zk自3.3.0版本引入的新角色,其工作原理和Follower类似,对于非事务请求都可以独自处理,对于事务请求,发送给Leader处理。和Follower唯一区别就是,Observer不参与投票,包括事情请求proposal的投票和leader选举的投票。另外,Observer的请求处理链和Follower类似。
需要注意的是,虽然上图中在初始化阶段会将SyncRequestProcessor处理器组装上去,但是在实际的运行过程中,Leader服务器不会讲事务请求发送个Observer服务器。
同session的操作,,,,写读怎么保证他的顺序性呢?
zk集群中,有3种角色,分别是
Leader
、Fllower
和Observer
。1 Leader
Leader服务器是整个zk集群的核心,主要工作是如下两个:
使用
责任链模式
来处理客户端请求是zk服务器的一大特色,每个服务器启动的时候,都会进行请求处理链的初始化,Leader服务器请求处理链如下图:LearnerHandler
Leader与每个Follower/Observer都建立一个TCP长连接,同时会为每个TCP长连接创建一个名为LearderHandler的实体,用来表示Leader与它们之间的连接信息。LearderHandler主要负责Leader和Follower/Observer之间的一系列网络通信,包括数据同步、请求转发和Proposal投票。
2 Follower
Follower是Leader的跟随者,主要职责有以下3个:
和Leader一样,Follower也采用了责任链模式处理请求,由于不需要事务请求的投票处理,流程相对简单一点。
3 Observer
Observer是zk自3.3.0版本引入的新角色,其工作原理和Follower类似,对于非事务请求都可以独自处理,对于事务请求,发送给Leader处理。和Follower唯一区别就是,Observer不参与投票,包括事情请求proposal的投票和leader选举的投票。另外,Observer的请求处理链和Follower类似。
需要注意的是,虽然上图中在初始化阶段会将SyncRequestProcessor处理器组装上去,但是在实际的运行过程中,Leader服务器不会讲事务请求发送个Observer服务器。