raft 高可用嘗試

aoerqileng發表於2022-01-23

之前寫的一些平臺基本都是單例項的,也沒考慮叢集,擴充套件性,高可用方面。最近在測試,使用raft,實現高可用,測試了下,感覺使用沒有很複雜,後面的一些系統設計開發,需要更多嘗試raft。


raft叢集中,每個raft例項都有自己的儲存,為了維護一致性,涉及到資料變更的操作,要寫入log,每個例項進行應用,維護資料一致性。


針對只能是leader節點的操作,需要判斷當前節點是否是leader,如果不是,直接返回錯誤,leader資訊。讓客戶端進行重新請求。這種操作對客戶端請求有要求,客戶端需要先獲取leader資訊,然後向leader節點傳送請求。


在實際的使用中,本來想agent寫資料到後臺資料庫,server端採用raft,定時統計,raft需要使用自己單獨的庫,定時任務在leader中執行,如果server端採用的不是raft,是單獨的服務,在部署多個節點的時候,需要考慮定時任務的重複執行問題,那麼需要用鎖控制。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25719946/viewspace-2853709/,如需轉載,請註明出處,否則將追究法律責任。

相關文章