雖然現在使用哨兵+主從的方式比較少了,但通過理解 Redis 哨兵,我們能獲得更深入的分布式的知識,
- https://redis.io/topics/sentinel
sentinel基本配置

sentinel的作用:
- 1、監控
- 2、通知
- 3、自動故障轉移 (1.投票決策master是否掛了,如果投票決策master掛了,2.則進一步決策選出執行故障轉移的leader, 去執行故障轉移)
- 4、充當client的授權和master查詢服務
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和其副本的自動發現

sentinel和其副本的自動發現,采用了 Pub/Sub發布訂閱機制實作
- 1.每個sentinel每2秒往其監視的Redis Master及其副本中發布頻道
__sentinel__:hello宣告自己的 ip port runid - 2.每個sentinel都訂閱其監視的Redis Master及其副本中的頻道
__sentinel__:hello
@SvenAugustus(https://www.flysium.xyz/)
更多請關注微信公眾號【編程不離宗】,專注于分享服務器開發與編程相關的技術干貨:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/2468.html
標籤:NoSQL
上一篇:Redis 主從復制全剖析

