Redis中的可用性保证之Sentinel的Ratf 算法
生活随笔
收集整理的這篇文章主要介紹了
Redis中的可用性保证之Sentinel的Ratf 算法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在分布式存儲系統(tǒng)中,通常通過維護多個副本來提高系統(tǒng)的可用性,那么多個節(jié)點之間必須要面對數(shù)據一致性的問題。Raft 的目的就是通過復制的方式,使所有節(jié)點達成一致,但是這么多節(jié)點,以哪個節(jié)點的數(shù)據為準呢?所以必須選出一個Leader。
大體上有兩個步驟:領導選舉,數(shù)據復制。
Raft 是一個共識算法(consensus algorithm)。比如比特幣之類的加密貨幣,就需要共識算法。Spring Cloud 的注冊中心解決方案Consul 也用到了Raft 協(xié)議。
Raft 的核心思想:先到先得,少數(shù)服從多數(shù)。
Raft 算法演示:
http://thesecretlivesofdata.com/raft/
總結:
Sentinle 的Raft 算法和Raft 論文略有不同。
1、master 客觀下線觸發(fā)選舉,而不是過了election timeout 時間開始選舉。
2、Leader 并不會把自己成為Leader 的消息發(fā)給其他Sentinel。其他Sentinel 等待Leader 從slave 選出master 后,檢測到新的master 正常工作后,就會去掉客觀下線的標識,從而不需要進入故障轉移流程。
?
總結
以上是生活随笔為你收集整理的Redis中的可用性保证之Sentinel的Ratf 算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis中的可用性保证之Sentine
- 下一篇: Redis中的Sentinel故障转移