雖然如今使用哨兵+主從的方式比較少了,但經過理解 Redis 哨兵,咱們能得到更深刻的分佈式的知識。redis
sentinel的做用:shell
sentinel monitor <master-group-name> <ip> <port> <quorum>
quorum 的含義:
(1)表示 sentinel 集羣中 quorum 個節點認爲 master掛了,那麼就可能觸發自動故障轉移進程。
(2)quorum 僅用於故障檢測,不涉及sentinel 集羣的其餘投票決策。編程
sentinel <option_name> <master_name> <option_value>
(1)判斷主master掛機的時間 down-after-milliseconds
master沒有回覆PING或回覆錯誤,這個持續多久了,sentinel節點就能夠認爲master掛了服務器
(2)在故障轉移後從新配置爲使用新Master的副本數 parallel-syncs
此數越小,故障轉移速度越快
但須要注意的是當副本也提供服務的時候,可能存在不一致數據微信
(3)失敗的超時時間 failover-timeout
failover過時時間,當failover開始後,在此時間內仍然沒有觸發任何failover操做,當前sentinel將會認爲這次failoer失敗。分佈式
sentinel和其副本的自動發現,採用了 Pub/Sub發佈訂閱機制實現3d
__sentinel__:hello
宣告本身的 ip port runid __sentinel__:hello
@SvenAugustus(https://www.flysium.xyz/)
更多請關注微信公衆號【編程不離宗】,專一於分享服務器開發與編程相關的技術乾貨:
code