Redis 腦裂問題是指,在 Redis 哨兵模式或集群模式中,由于網(wǎng)絡(luò)原因,導致主節(jié)點(Master)與哨兵(Sentinel)和從節(jié)點(Slave)的通訊中斷,此時哨兵就會誤以為主節(jié)點已宕機,就會在從節(jié)點中選舉出一個新的主節(jié)點,此時 Redis 的集群中就出現(xiàn)了兩個主節(jié)點的問題,就是 Redis
Redis腦裂問題是指在Redis哨兵模式或集群模式中,由于網(wǎng)絡(luò)原因,導致主節(jié)點(Master)與哨兵(Sentinel)和從節(jié)點(Slave)的通訊中斷。這會導致哨兵誤以為主節(jié)點已宕機,從而在從節(jié)點中選舉出一個新的主節(jié)點,造成Redis集群中出現(xiàn)兩個主節(jié)點的問題。
Redis腦裂問題會導致數(shù)據(jù)丟失。具體來說,當舊的Master節(jié)點變?yōu)镾lave節(jié)點后,數(shù)據(jù)丟失的過程如下:
在執(zhí)行到第三步的時候,原客戶端在舊Master寫入的數(shù)據(jù)就丟失了,這就是數(shù)據(jù)丟失的問題。
腦裂問題只需要在舊Master恢復(fù)網(wǎng)絡(luò)之后,切換身份為Slave期間,不接收客戶端的數(shù)據(jù)寫入即可。為解決這個問題,Redis提供了以下兩個配置:
這兩個配置項必須同時滿足,不然主節(jié)點拒絕寫入。在假故障期間滿足min-slaves-to-write和min-slaves-max-lag的要求,那么主節(jié)點就會被禁止寫入,腦裂造成的數(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īng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實現(xiàn)對象集合與DataTable的相互轉(zhuǎn)換
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細使用
閱讀Java代理模式:靜態(tài)代理和動態(tài)代理的對比分析
閱讀Win11筆記本“自動管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)