一、前言
前面已經介紹了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。
三、總結
本篇只簡單介紹了伺服器的繼承關係,之後會詳細分析不同伺服器的行為和責任,謝謝各位園友的觀看~