Sentinel系統選舉領頭的方法是對Raft算法的領頭選舉方法的實現。
在分布式系統中一致性是很重要的。1990年Leslie Lamport提出基於消息傳遞的一致性算法Paxos算法,解決分布式系統中就某個值或決議達成一致的問題。Paxos算法流程繁雜實現起來也比較復雜。
2013年斯坦福的Diego Ongaro、John Ousterhout兩個人以易懂為目標設計一致性算法Raft。Raft一致性算法保障在任何時候一旦處於leader服務器當掉,可以在剩余正常工作的服務器中選舉出新的Leader服務器更新新Leader服務器,修改從服務器的復制目標。
Sentinel是一個運行在特殊模式下的Redis服務器。它負責監視主服務器以及主服務器下的從服務器。當領頭Sentinel認為主服務器已經進入主觀下線狀態,將對已下線的主服務器執行故障轉移操作,該操作包括三個步驟:
(1)在已下線主服務器下的從服務器中挑選一個從服務器,將其轉換為新的主服務器。
(2)讓已下線主服務器屬下的所有從服務器改為復制新的主服務器。
(3)將已下線主服務器成為新主服務器的從服務器。
Raft詳解:http://www.cnblogs.com/likehua/p/5845575.html
分布式Raft算法:http://www.jdon.com/artichect/raft.html
分布式一致算法——Paxos:http://www.cnblogs.com/cchust/p/5617989.html