久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么理解Redis中的哨兵模式

152次閱讀
沒有評論

共計 1687 個字符,預(yù)計需要花費 5 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“怎么理解 Redis 中的哨兵模式”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

Redis 主從模式,一旦主節(jié)點發(fā)生故障,可以將從節(jié)點 升為 主節(jié)點,同時還要通知客戶端更新主節(jié)點地址,這樣一般是不可行的。所以,Redis 提供了 Redis Sentinel 哨兵機(jī)制 來解決這個問題。

主從復(fù)制的問題

1. 主從復(fù)制的好處

主節(jié)點發(fā)生故障,從節(jié)點會升級為主節(jié)點

擴(kuò)展主節(jié)點的讀能力,分擔(dān)主節(jié)點壓力

2. 存在的問題

從節(jié)點升級主節(jié)點的過程需要人工干預(yù),同時要更改客戶端 Redis 服務(wù)地址

主節(jié)點寫能力、存儲能力受到單機(jī)限制

性能的影響:Redis 復(fù)制中斷 后從節(jié)點會發(fā)起 psync。此時如果同步不成功,則會進(jìn)行全量同步,主庫執(zhí)行全量備份的同時,可能會造成毫秒或秒級的 卡頓

Sentinel 實現(xiàn)原理 1. 一些概念主要功能

監(jiān)控:不斷檢查主從服務(wù)器是否正常運行

通知:一旦某個節(jié)點發(fā)生故障,會通知其他節(jié)點

自動故障轉(zhuǎn)移:當(dāng)主節(jié)點不能正常工作會自動進(jìn)行故障轉(zhuǎn)移,從其中一個從節(jié)點升級為主節(jié)點

配置提供者:客戶端不是配置單個節(jié)點,而是 Sentinel 節(jié)點集合

主觀下線和客觀下線

一般來說,每個 Sentinel 節(jié)點會不斷的 對其他 Sentinel 節(jié)點和 Redis 節(jié)點發(fā)送 PING,通過是否回復(fù)來確認(rèn)是否在線

主觀下線:適用于所有主節(jié)點和從節(jié)點,如果在 down-after-milliseconds 毫秒內(nèi),Sentinel 沒有收到目標(biāo)節(jié)點的有效回復(fù),則會判定該節(jié)點為主觀下線。

客觀下線:只使用于主節(jié)點,如果主節(jié)點發(fā)生故障,Sentinel 節(jié)點會通過 sentinel is-master-down-by-addr 命令,向其它 Sentinel 節(jié)點詢問對該節(jié)點的狀態(tài)判斷。如果超過 quorum 個數(shù)的節(jié)點判定主節(jié)點不可達(dá),則該 Sentinel 節(jié)點會判斷主節(jié)點為客觀下線。

2. 工作原理

每個 Sentinel 以 1 次 /s 頻率,向其他 Sentinel 節(jié)點、Redis 主從節(jié)點發(fā)送 PING 指令。

如果一個實例,距離最后有效回復(fù) PING 命令超過 down-after-milliseconds,這個實例被 Sentinel 標(biāo)記為 主觀下線。

如果一個 主服務(wù)器 被標(biāo)記為主觀下線,那么正在監(jiān)視這個主服務(wù)器的所有 Sentinel 節(jié)點,以 1 次 /s 確認(rèn)此主服務(wù)器是否進(jìn)入主觀下線狀態(tài)

如果超過 quorum 個數(shù)的節(jié)點判定主節(jié)點不可達(dá),則該 Sentinel 節(jié)點會判斷主節(jié)點為 客觀下線。

當(dāng)主服務(wù)器被標(biāo)記為客觀下線時,Sentinel 向下線服務(wù)器的所欲服務(wù)器發(fā)送 INFO 命令,會從 10 次 /s 改為 1 次 /s。

Sentinel 節(jié)點之間協(xié)商主節(jié)點狀態(tài),如果主節(jié)點處于 SDOWN 狀態(tài),則投票自動選出新的 主節(jié)點。將剩余的 從節(jié)點 指向 新的主節(jié)點 進(jìn)行 數(shù)據(jù)復(fù)制。

當(dāng)沒有足夠數(shù)量的 Sentinel 同意 主服務(wù)器 下線時,主服務(wù)器 的 客觀下線狀態(tài) 就會被移除。當(dāng) 主服務(wù)器 重新向 Sentinel 的 PING 命令返回 有效回復(fù) 時,主服務(wù)器 的 主觀下線狀態(tài) 就會被移除。

3. 消息丟失

Redis 采用主從復(fù)制的模式,一旦主節(jié)點掛掉,從節(jié)點正在同步的數(shù)據(jù)可能會丟失,延遲越大,丟失的越多。

Redis 提供了兩個配置項來限制主庫的請求處理,分別是 min-slaves-to-write 和 min-slaves-max-lag。

min-slaves-to-write:這個配置項設(shè)置了主庫能進(jìn)行數(shù)據(jù)同步的最少從庫數(shù)量;

min-slaves-max-lag:這個配置項設(shè)置了主從庫間進(jìn)行數(shù)據(jù)復(fù)制時,從庫給主庫發(fā)送 ACK 消息的最大延遲(以秒為單位)。

這兩個配置項組合后的要求是,主庫連接的從庫中至少有 N 個從庫,和主庫進(jìn)行數(shù)據(jù)復(fù)制時的 ACK 消息延遲不能超過 T 秒,否則,主庫就不會再接收客戶端的請求了。

所以,Sentine 無法保證消息完全不丟失,但是也能盡量保證消息少丟失。

“怎么理解 Redis 中的哨兵模式”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-15發(fā)表,共計1687字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 平凉市| 宁南县| 澜沧| 瓮安县| 龙口市| 类乌齐县| 康保县| 长沙市| 泸西县| 炎陵县| 泌阳县| 苍南县| 嫩江县| 嵩明县| 双峰县| 沧州市| 渝北区| 塔城市| 广昌县| 金沙县| 贵南县| 芦溪县| 马山县| 日喀则市| 紫阳县| 淮北市| 菏泽市| 云南省| 台江县| 临沧市| 察隅县| 合阳县| 万宁市| 日土县| 平遥县| 加查县| 普定县| 五台县| 吴堡县| 淮安市| 裕民县|