新聞中心
Redis是當(dāng)前最流行的key-store,主要用于實(shí)現(xiàn)分布式鎖的技術(shù)(參考),但也存在嚴(yán)重的崩潰風(fēng)險(xiǎn)。瞬間崩潰可能會(huì)導(dǎo)致巨大的損失,從而影響業(yè)務(wù)系統(tǒng)的正常運(yùn)行,因此分布式鎖及其備選方案在分布式環(huán)境中至關(guān)重要,有效控制Redis崩潰的風(fēng)險(xiǎn)是必不可少的。

有時(shí)候,在特定情況下,即使Redis存在無(wú)法狀態(tài),業(yè)務(wù)系統(tǒng)也不需要重啟,因此可以考慮其他的分布式鎖的備選方案,以便在Redis崩潰時(shí)被自動(dòng)激活,以便把系統(tǒng)保持正常。
市面上比較常見(jiàn)的兩種經(jīng)典分布式鎖備選方法,可以提供實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換分布式鎖:
– 數(shù)據(jù)庫(kù)樂(lè)觀鎖。數(shù)據(jù)庫(kù)樂(lè)觀鎖是一種基于數(shù)據(jù)庫(kù)實(shí)現(xiàn)的分布式鎖,通過(guò)利用數(shù)據(jù)庫(kù)行級(jí)粒度鎖定來(lái)實(shí)現(xiàn),是一種低代價(jià)的分布式鎖實(shí)現(xiàn)方式,一般可以有較高的性能表現(xiàn),也可以有較高的并發(fā)度。走樂(lè)觀鎖方式的實(shí)現(xiàn)的時(shí)候,需要表單增加一個(gè)版本字段,當(dāng)數(shù)據(jù)更新時(shí)需要把版本字段+1更新,鎖定時(shí)根據(jù)版本字段來(lái)判斷數(shù)據(jù)是否被修改。這種備選方法能有效防范Redis宕機(jī)造成系統(tǒng)中斷的問(wèn)題。
– Zookeeper方式,通過(guò)像Zookeeper這樣的關(guān)鍵系統(tǒng),將數(shù)據(jù)放在一個(gè)集中的節(jié)點(diǎn),然后利用臨時(shí)分布式鎖的方式進(jìn)行管理。此方案能有效的防止Redis宕機(jī)造成系統(tǒng)崩潰,但是由于Zookeeper的開(kāi)銷(xiāo)較大,對(duì)系統(tǒng)的性能也不會(huì)有明顯的提升,在運(yùn)行的時(shí)候也會(huì)有明顯的性能損耗。
實(shí)際上,用戶(hù)還可以混合采用多種分布式鎖的備選方法,以結(jié)合上述兩種方法,充分利用它們的優(yōu)勢(shì),比如:可以增加數(shù)據(jù)庫(kù)緩存層,用以緩解Zookeeper的負(fù)擔(dān),減少對(duì)Redis存儲(chǔ)的依賴(lài),從而降低Redis崩潰所產(chǎn)生的損失。
綜上所述,數(shù)據(jù)庫(kù)樂(lè)觀鎖與Zookeeper方式都可以作為Redis崩潰時(shí)分布式鎖備選方案,輔助系統(tǒng)達(dá)到運(yùn)行正常的目標(biāo)。同時(shí),用戶(hù)可以采取混合的方式,結(jié)合上述兩種方法的優(yōu)勢(shì),更好的降低分布式系統(tǒng)崩潰的風(fēng)險(xiǎn),以及提高業(yè)務(wù)系統(tǒng)的可用性。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽(yáng)、重慶、貴陽(yáng)機(jī)房服務(wù)器托管租用。
當(dāng)前文章:redis崩潰分布式鎖的備選方案(分布式鎖 redis掛了)
標(biāo)題來(lái)源:http://m.fisionsoft.com.cn/article/ccsddeg.html


咨詢(xún)
建站咨詢(xún)
