Redis 腦裂問題是指,在 Redis 哨兵模式或集群模式中,由于網(wǎng)絡(luò)原因,導(dǎo)致主節(jié)點(diǎn)(Master)與哨兵(Sentinel)和從節(jié)點(diǎn)(Slave)的通訊中斷,此時(shí)哨兵就會(huì)誤以為主節(jié)點(diǎn)已宕機(jī),就會(huì)在從節(jié)點(diǎn)中選舉出一個(gè)新的主節(jié)點(diǎn),此時(shí) Redis 的集群中就出現(xiàn)了兩個(gè)主節(jié)點(diǎn)的問題,就是 Redis
Redis腦裂問題是指在Redis哨兵模式或集群模式中,由于網(wǎng)絡(luò)原因,導(dǎo)致主節(jié)點(diǎn)(Master)與哨兵(Sentinel)和從節(jié)點(diǎn)(Slave)的通訊中斷。這會(huì)導(dǎo)致哨兵誤以為主節(jié)點(diǎn)已宕機(jī),從而在從節(jié)點(diǎn)中選舉出一個(gè)新的主節(jié)點(diǎn),造成Redis集群中出現(xiàn)兩個(gè)主節(jié)點(diǎn)的問題。
Redis腦裂問題會(huì)導(dǎo)致數(shù)據(jù)丟失。具體來說,當(dāng)舊的Master節(jié)點(diǎn)變?yōu)镾lave節(jié)點(diǎn)后,數(shù)據(jù)丟失的過程如下:
在執(zhí)行到第三步的時(shí)候,原客戶端在舊Master寫入的數(shù)據(jù)就丟失了,這就是數(shù)據(jù)丟失的問題。
腦裂問題只需要在舊Master恢復(fù)網(wǎng)絡(luò)之后,切換身份為Slave期間,不接收客戶端的數(shù)據(jù)寫入即可。為解決這個(gè)問題,Redis提供了以下兩個(gè)配置:
這兩個(gè)配置項(xiàng)必須同時(shí)滿足,不然主節(jié)點(diǎn)拒絕寫入。在假故障期間滿足min-slaves-to-write和min-slaves-max-lag的要求,那么主節(jié)點(diǎn)就會(huì)被禁止寫入,腦裂造成的數(shù)據(jù)丟失情況自然也就解決了。
設(shè)置了參數(shù)之后,Redis腦裂問題能完全被解決嗎?為什么?Zookeeper有腦裂問題嗎?它是如何解決腦裂問題的?
小編推薦閱讀本文已收錄到我的面試小站www.javacn.site,其中包含的內(nèi)容有:Redis、JVM、并發(fā)、并發(fā)、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、設(shè)計(jì)模式、消息隊(duì)列等模塊。
機(jī)器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實(shí)現(xiàn)對(duì)象集合與DataTable的相互轉(zhuǎn)換
閱讀鴻蒙NEXT元服務(wù):論如何免費(fèi)快速上架作品
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細(xì)使用
閱讀Java代理模式:靜態(tài)代理和動(dòng)態(tài)代理的對(duì)比分析
閱讀Win11筆記本“自動(dòng)管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]
湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)