7 服务器角色介绍
分别有Leader、Follower和Observer三种类型
7.1 Leader
主要工作:
7.1.1 请求处理链
每一个服务器启动的时候,都会进行请求处理链的初始化;此处使用了责任链模式:
7个请求处理器组成了此链,功能如下:
7.1.2 LearnerHandler
Leader服务器的管理器,Leader服务器会与每一个Follower/Observer服务器建立一个TCP长连接,还会为每一个Follower/Observer服务器建创建LearnerHandler的实体
目的:为了保持整个集群内部的实时通信和为了确保可以控制所以的Follower/Observer服务器
作用:主要负责Follower/Observer服务器和Leader服务器之间的一系列网络通信,包括数据同步、请求转发和Proposal提议的投票等
7.2 Follower
主要工作:
7.2.1 请求处理链
同Leader:
与Leader不同的处理器:
7.3 Observer
作用:
7.3.1 请求处理链
与Follower非常相似:
区别:虽然SyncRequestProcessor处理器也组转上去了,但是实际运行中,Leader服务器不会将事务请求的投票发给Observer服务器
7.4 集群间消息通信
在整个ZooKeeper集群工作过程中,都是由Leader服务器来负责进行各服务器之间的协调;各服务器之间的网络通信,都是通过不同类型的消息传递来实现的
消息类型分为四类:数据同步型、服务器初始化型、请求处理型、会话管理型