zookeeper請求處理鏈

https://www.jianshu.com/p/0035797732e5

leader

ProposalRequestProcessor

他有兩個後續的處理器,CommitProcessor(默認)和syncProcessor

如果是LearnerSyncRequest就直接處理掉
否則先讓commitProcessor處理,如果是事務請求,還要提議,集羣投票,然後再讓syncProcessor處理
也就是說,“經過了syncProcessor”處理的請求一定經過了"commitProcessor"的處理

SyncRequestProcessor

記錄事務日誌 請求轉發至下一processor

AckRequestProcessor

是leader端的處理器
負責在SyncRequestProcessor完成事務日誌記錄後,向Proposal的投票收集器發送ACK反饋,以通知投票收集器當前服務器已經完成了對該Proposal的事務日誌記錄。本質是調用leader.processAck方法,這個方法會將確認結果扔往

CommitProcessor

事務提交處理器。對於非事務請求,該處理器會直接將其交付給下一級處理器處理;對於事務請求,其會等待集羣內針對Proposal的投票直到該Proposal可被提交,利用CommitProcessor,每個服務器都可以很好地控制對事務請求的順序處理。

ToBeAppliedRequestProcessor

除了CommitProcessor過來的請求,還會處理AckRequestProcessor 中leadert扔往oBeApplied隊列的數據


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章