7 服务器角色介绍

分别有Leader、Follower和Observer三种类型

7.1 Leader

主要工作:
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色

7.1.1 请求处理链

每一个服务器启动的时候,都会进行请求处理链的初始化;此处使用了责任链模式:
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色
7个请求处理器组成了此链,功能如下:
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色

7.1.2 LearnerHandler

Leader服务器的管理器,Leader服务器会与每一个Follower/Observer服务器建立一个TCP长连接,还会为每一个Follower/Observer服务器建创建LearnerHandler的实体
目的:为了保持整个集群内部的实时通信和为了确保可以控制所以的Follower/Observer服务器

作用:主要负责Follower/Observer服务器和Leader服务器之间的一系列网络通信,包括数据同步、请求转发和Proposal提议的投票等

7.2 Follower

主要工作:
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色

7.2.1 请求处理链

同Leader:
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色
与Leader不同的处理器:
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色

7.3 Observer

作用:
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色

7.3.1 请求处理链

与Follower非常相似:
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色
区别:虽然SyncRequestProcessor处理器也组转上去了,但是实际运行中,Leader服务器不会将事务请求的投票发给Observer服务器

7.4 集群间消息通信

在整个ZooKeeper集群工作过程中,都是由Leader服务器来负责进行各服务器之间的协调;各服务器之间的网络通信,都是通过不同类型的消息传递来实现的

消息类型分为四类:数据同步型、服务器初始化型、请求处理型、会话管理型

7.4.1 数据同步型

《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色

7.4.2 服务器初始化型

《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色

7.4.3 请求处理型

《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色

7.4.4 会话管理型

《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色

相关文章: