掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
Redis集群模式故障發(fā)現(xiàn)過程有主觀下線與客觀下線。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比印臺網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式印臺網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋印臺地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
主觀下線簡單來說就是我這個節(jié)點(diǎn)認(rèn)為你故障了。
客觀下線則是集群中大多數(shù)節(jié)點(diǎn)認(rèn)為你故障了。
這些判定與狀態(tài)的同步均通過Gossip協(xié)議PING/PONG來通信。
主觀下線流程
客觀下線流程
攜帶集群1/10的其他節(jié)點(diǎn)狀態(tài)
當(dāng)然也包含主觀下線節(jié)點(diǎn)的信息
只處理發(fā)送為主節(jié)點(diǎn)的請求,從節(jié)點(diǎn)不處理
不存在故障節(jié)點(diǎn)下線報告,新增下線報告
已存在故障節(jié)點(diǎn)下線報告,更新報告時間
每次收到其他節(jié)點(diǎn)的故障狀態(tài)pfail時,均會嘗試客觀下線
監(jiān)測故障下線報告是否過期,過期的報告將被刪除
報告時間超過cluster-node-timeout*2未被更新將被移除
下線報告數(shù)量小于持有槽主節(jié)點(diǎn)的數(shù)量的二分之一,退出客觀下線
下線報告數(shù)量大于持有槽主節(jié)點(diǎn)的數(shù)量的二分之一,標(biāo)記客觀下線
向集群廣播一條fail消息(標(biāo)記客觀下線立即生效、故障從節(jié)點(diǎn)發(fā)起故障轉(zhuǎn)移流程)
Redis集群模式從節(jié)點(diǎn)的作用用于災(zāi)備,主節(jié)點(diǎn)故障時能夠替換頂上去。
選舉邏輯以及選舉失效是怎么樣的?
故障轉(zhuǎn)移流程
從節(jié)點(diǎn)中復(fù)制的偏移量越大,替換主節(jié)點(diǎn)的優(yōu)先級越高。
從節(jié)點(diǎn)獲得持有槽的主節(jié)點(diǎn)一半以上的選票,可替換為主節(jié)點(diǎn)。
從節(jié)點(diǎn)向集群廣播PONG消息,通知該變更。
Redis的集群模式客戶端直連集群,不需要額外的組件,運(yùn)維難度較低。
由于集群中每個實(shí)例都需要保存路由信息,彼此不斷傳播通信更新,也造成通信成本進(jìn)而影響集群規(guī)模。
Redis的集群模式也會造成客戶端需要重定向,帶來復(fù)雜性。
因此,緩存代理模式可以解決這種復(fù)雜性,當(dāng)然組件也會增多。
客服端:兼容RESP協(xié)議的輕量級客戶端。
集群代理:負(fù)責(zé)域客戶端建立連接,以及轉(zhuǎn)發(fā)請求到對應(yīng)的槽位和實(shí)例節(jié)點(diǎn)。
元數(shù)據(jù)中心:主要負(fù)責(zé)存儲槽位與實(shí)例對應(yīng)路由信息以及健康檢查心跳探測。
集群模式一:集群部署主從架構(gòu),需要元數(shù)中心負(fù)責(zé)心跳的健康監(jiān)測,主從節(jié)點(diǎn)的HA,當(dāng)主節(jié)點(diǎn)故障切換從節(jié)點(diǎn)接管。
集群模式二:集群部署Raft組,不需要額外的HA心跳監(jiān)測,集群自閉環(huán),三個節(jié)點(diǎn)一組成本較高。
模式一
模式二
兼容RESP協(xié)議的輕量級客戶端與代理建立長鏈接。
發(fā)送讀寫請求到代理層,代理根據(jù)路由規(guī)則將key路由到對應(yīng)集群的槽位。
管理平臺可對元數(shù)據(jù)信息、槽位分配、代理以及集群部署運(yùn)維等進(jìn)行管理。
可視化白屏化對整個集群的監(jiān)控、告警、大key等水位監(jiān)控告警。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流