您好,登錄后才能下訂單哦!
這篇文章主要介紹Redis中的哨兵模式如何實現(xiàn),文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
Redis Sentinel哨兵模式 是一個分布式系統(tǒng), 你可以在一個架構(gòu)中運(yùn)行多個 Sentinel 進(jìn)程(progress), 這些進(jìn)程使用流言協(xié)議(gossip protocols)來接收關(guān)于主服務(wù)器是否下線的信息, 并使用投票協(xié)議(agreement protocols)來決定是否執(zhí)行自動故障遷移, 以及選擇哪個從服務(wù)器作為新的主服務(wù)器?!鞠嚓P(guān)推薦:Redis視頻教程】
Redis 的 Sentinel 系統(tǒng)用于管理多個 Redis 服務(wù)器(instance), 系統(tǒng)執(zhí)行以下三個任務(wù):
監(jiān)控(Monitoring): Sentinel 會不斷地檢查你的主服務(wù)器和從服務(wù)器是否運(yùn)作正常。
提醒(Notification): 當(dāng)被監(jiān)控的某個 Redis 服務(wù)器出現(xiàn)問題時, Sentinel 可以通過 API 向管理員或者其他應(yīng)用程序發(fā)送通知。
自動故障遷移(Automatic failover): 當(dāng)一個主服務(wù)器不能正常工作時, Sentinel 會開始一次自動故障遷移操作, 它會將失效主服務(wù)器的其中一個從服務(wù)器升級為新的主服務(wù)器, 并讓失效主服務(wù)器的其他從服務(wù)器改為復(fù)制新的主服務(wù)器; 當(dāng)客戶端試圖連接失效的主服務(wù)器時, 集群也會向客戶端返回新主服務(wù)器的地址, 使得集群可以使用新主服務(wù)器代替失效服務(wù)器。
每個sentinel以每秒鐘一次的頻率向它所知的master,slave以及其他sentinel實例發(fā)送一個 PING 命令
如果一個實例距離最后一次有效回復(fù) PING 命令的時間超過 down-after-milliseconds 選項所指定的值, 則這個實例會被sentinel標(biāo)記為主觀下線。
如果一個master被標(biāo)記為主觀下線,則正在監(jiān)視這個master的所有sentinel要以每秒一次的頻率確認(rèn)master的確進(jìn)入了主觀下線狀態(tài)
當(dāng)有足夠數(shù)量的sentinel(大于等于配置文件指定的值)在指定的時間范圍內(nèi)確認(rèn)master的確進(jìn)入了主觀下線狀態(tài), 則master會被標(biāo)記為客觀下線
在一般情況下, 每個sentinel會以每 10 秒一次的頻率向它已知的所有master,slave發(fā)送 INFO 命令
當(dāng)master被sentinel標(biāo)記為客觀下線時,sentinel向下線的master的所有slave發(fā)送 INFO 命令的頻率會從 10 秒一次改為 1 秒一次
若沒有足夠數(shù)量的sentinel同意master已經(jīng)下線,master的客觀下線狀態(tài)就會被移除; 若master重新向sentinel的 PING 命令返回有效回復(fù),master的主觀下線狀態(tài)就會被移除
環(huán)境
master:127.0.0.1:6379 【初始化master】 slave:127.0.0.1:6380 127.0.0.1:6381 sentinel:127.0.0.1:26379 127.0.0.1:26380 127.0.0.1:26381
修改配置:
這里省略安裝了redis,直接修改sentinel配置文件。對應(yīng)文件夾Redis6379-Redis6381
# 監(jiān)控節(jié)點(diǎn),且超過2個sentinel 任務(wù)故障,方可執(zhí)行故障轉(zhuǎn)移 sentinel monitor mymaster 127.0.0.1 6379 2 # 如果節(jié)點(diǎn)在 30000毫秒內(nèi)未回應(yīng),就認(rèn)為故障 sentinel down-after-milliseconds mymaster 30000 # 如果故障轉(zhuǎn)移后,同時進(jìn)行主從復(fù)制數(shù)為 1 sentinel parallel-syncs mymaster 1 # 故障轉(zhuǎn)移的超時時間 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes
啟動命令
./src/redis-sentinel ./config/redis-sentinel-6379.conf(同樣啟動6380 6381)
以上是“Redis中的哨兵模式如何實現(xiàn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。