ZK 2フェーズ・コミット(向上します)

選挙後、リーダーとフォロワーは独自のロジックを実行するには:

org.apache.zookeeper.server.quorum.QuorumPeer#実行

盟主

org.apache.zookeeper.server.quorum.QuorumPeer#setLeader
 // 构建プロセッサ链
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer#setupRequestProcessors
 // PrepRequestProcessor、ProposalRequestProcessor、CommitProcessor、ToBeAppliedRequestProcessor、FinalRequestProcessor 
org.apache.zookeeper.server。 quorum.Leader番号リード

フォロワー

org.apache.zookeeper.server.quorum.QuorumPeer#setFollower
 // 构建プロセッサ链
org.apache.zookeeper.server.quorum.FollowerZooKeeperServer#setupRequestProcessors
 // 链1:FollowerRequestProcessor、CommitProcessor、FinalRequestProcessor
 // 链2:SyncRequestProcessor、SendAckRequestProcessor 
ORG .apache.zookeeper.server.quorum.Follower#followLeader

リーダーはフォロワーに対して勧告を送ります

org.apache.zookeeper.server.quorum.LearnerHandler#sendPackets

リーダーのフォロワーは、送信された勧告を受信して​​処理します

org.apache.zookeeper.server.quorum.Follower#processPacket
// トランザクションログに書き込まSyncRequestProcessor 
org.apache.zookeeper.server.SyncRequestProcessor#RUN 

//がリーダーにACKを送信し 
org.apache.zookeeper.server.quorum.SendAckRequestProcessorのprocessRequest#

リーダーは要求を受信して​​処理フォロワー

RUN#org.apache.zookeeper.server.quorum.LearnerHandler
 // ACKは半分以上、置く書き込み動作はステートマシンに適用され、フォロワーイベントを送信 
org.apache.zookeeper.server.quorum.Leader#processAck

フォロワーの書き込み動作を提出

CommitProcessor和FinalRequestProcessor

おすすめ

転載: www.cnblogs.com/allenwas3/p/11845549.html