一、前言
前面已經介紹了Zookeeper中Leader選舉的具體流程,接着來學習Zookeeper中的各種服務器。
二、總體框架圖
對於服務器,其框架圖如下圖所示
說明:
ZooKeeperServer,為所有服務器的父類,其請求處理鏈為PrepRequestProcessor -> SyncRequestProcessor -> FinalRequestProcessor。
QuorumZooKeeperServer,其是所有參與選舉的服務器的父類,是抽象類,其繼承了ZooKeeperServer類。
LeaderZooKeeperServer,Leader服務器,繼承了QuorumZooKeeperServer類,其請求處理鏈為PrepRequestProcessor -> ProposalRequestProcessor -> CommitProcessor -> Leader.ToBeAppliedRequestProcessor -> FinalRequestProcessor。
LearnerZooKeeper,其是Learner服務器的父類,為抽象類,也繼承了QuorumZooKeeperServer類。
FollowerZooKeeperServer,Follower服務器,繼承了LearnerZooKeeper,其請求處理鏈為FollowerRequestProcessor -> CommitProcessor -> FinalRequestProcessor。
ObserverZooKeeperServer,Observer服務器,繼承了LearnerZooKeeper。
ReadOnlyZooKeeperServer,只讀服務器,不提供寫服務,繼承QuorumZooKeeperServer,其處理鏈的第一個處理器為ReadOnlyRequestProcessor。
三、總結
本篇只簡單介紹了服務器的繼承關系,之后會詳細分析不同服務器的行為和責任,謝謝各位園友的觀看~