最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

Memcached集群/分布式的單點(diǎn)故障

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 13:33:17
文檔

Memcached集群/分布式的單點(diǎn)故障

Memcached集群/分布式的單點(diǎn)故障:口水: Memcached在2009風(fēng)靡全球,現(xiàn)在對(duì)Memcached態(tài)度大家各自褒貶不一,話不多說進(jìn)入正題。 我看到過這樣一段文字 memcached如何處理容錯(cuò)的? 不處理!:) 在memcached節(jié)點(diǎn)失效的情況下,集群沒有必要做任何容錯(cuò)處理。如果發(fā)生了節(jié)點(diǎn)失效,應(yīng)對(duì)的措施完全取
推薦度:
導(dǎo)讀Memcached集群/分布式的單點(diǎn)故障:口水: Memcached在2009風(fēng)靡全球,現(xiàn)在對(duì)Memcached態(tài)度大家各自褒貶不一,話不多說進(jìn)入正題。 我看到過這樣一段文字 memcached如何處理容錯(cuò)的? 不處理!:) 在memcached節(jié)點(diǎn)失效的情況下,集群沒有必要做任何容錯(cuò)處理。如果發(fā)生了節(jié)點(diǎn)失效,應(yīng)對(duì)的措施完全取

口水: Memcached在2009風(fēng)靡全球,現(xiàn)在對(duì)Memcached態(tài)度大家各自褒貶不一,話不多說進(jìn)入正題。 我看到過這樣一段文字 memcached如何處理容錯(cuò)的? 不處理!:) 在memcached節(jié)點(diǎn)失效的情況下,集群沒有必要做任何容錯(cuò)處理。如果發(fā)生了節(jié)點(diǎn)失效,應(yīng)對(duì)的措施完全取

口水:Memcached在2009風(fēng)靡全球,現(xiàn)在對(duì)Memcached態(tài)度大家各自褒貶不一,話不多說進(jìn)入正題。

我看到過這樣一段文字

memcached如何處理容錯(cuò)的?
不處理!:) 在memcached節(jié)點(diǎn)失效的情況下,集群沒有必要做任何容錯(cuò)處理。如果發(fā)生了節(jié)點(diǎn)失效,應(yīng)對(duì)的措施完全取決于用戶。節(jié)點(diǎn)失效時(shí),下面列出幾種方案供您選擇:
* 忽略它! 在失效節(jié)點(diǎn)被恢復(fù)或替換之前,還有很多其他節(jié)點(diǎn)可以應(yīng)對(duì)節(jié)點(diǎn)失效帶來的影響。
* 把失效的節(jié)點(diǎn)從節(jié)點(diǎn)列表中移除。做這個(gè)操作千萬要小心!在默認(rèn)情況下(余數(shù)式哈希算法),客戶端添加或移除節(jié)點(diǎn),會(huì)導(dǎo)致所有的緩存數(shù)據(jù)不可用!因?yàn)楣⒄盏墓?jié)點(diǎn)列表變化了,大部分key會(huì)因?yàn)楣V档母淖兌挥成涞剑ㄅc原來)不同的節(jié)點(diǎn)上。
* 啟動(dòng)熱備節(jié)點(diǎn),接管失效節(jié)點(diǎn)所占用的IP。這樣可以防止哈希紊亂(hashing chaos)。

同學(xué)們,根據(jù)上面的說法,memcached其中一個(gè)節(jié)點(diǎn)失效以后,memcached本身是沒有任何策略維持失效轉(zhuǎn)發(fā)的,這對(duì)于大型系統(tǒng)是一個(gè)無法接受的事實(shí)。

Memcached分布式每個(gè)服務(wù)器端本身沒有相互相連的關(guān)系,數(shù)據(jù)分布是由客戶端來維持的,也可以說Memcached還沒有為集群提供真的高可用方案,因?yàn)閺募旱亩x上來說需要滿足:1.壓力分載 2.失效轉(zhuǎn)發(fā)。

在項(xiàng)目組中l(wèi)ianjie.you同學(xué)問我如果在分布式中的其中一臺(tái)Memcached節(jié)點(diǎn)down掉了,應(yīng)該如何解決?我當(dāng)時(shí)愣住了,一時(shí)之間還不能給出任何完整的答案。

今早在座公車來上班的路上用手機(jī)上網(wǎng)Google了一下,發(fā)現(xiàn)原來在網(wǎng)上有很多人與我們有相同的問題,我Google的關(guān)鍵字是“Memcached 單點(diǎn)” 、“Memcached 單點(diǎn)故障”。給出的搜索結(jié)果都不算讓人滿意,我才打算寫一篇關(guān)于解決集群中Memcached單點(diǎn)故障的文章。Javabloger只向大家提供2種解決思路,暫時(shí)不提供具體代碼。

現(xiàn)象描述:
在客戶端連接的部分寫入多個(gè)服務(wù)器端的ip地址,客戶端將會(huì)自動(dòng)的把緩存數(shù)據(jù)分布的放在每個(gè)不同的機(jī)器上,如圖所示:

/Uploads-s/new/2019-09-30-201930/092Ia530-0.png
查看大圖請(qǐng)點(diǎn)擊這里

現(xiàn)象后果:
如果其中一個(gè)緩存節(jié)點(diǎn)的機(jī)器down機(jī),那么客戶端存入的緩存數(shù)據(jù)將會(huì)丟失一部分,就是圖中紅色字體描述的“Losed 33% Cache Data”,也就是說那部分?jǐn)?shù)據(jù)徹底沒有了!如果是用戶的關(guān)鍵性信息那么就玩大了,如圖所示:/Uploads-s/new/2019-09-30-201930/092I92544-1.png
查看大圖請(qǐng)點(diǎn)擊這里

解決方案1:本地備份緩存
在本地放一份緩存,同時(shí)也在分布式Memcached上放一份緩存,如果當(dāng)其中一臺(tái)節(jié)點(diǎn)當(dāng)機(jī)了,客戶端程序直接讀取本地的緩存,本地客戶端維護(hù)一個(gè)HashMap即可,這樣的方案雖然很簡陋,但是可以滿足一部分場景的需要,當(dāng)你很急需的時(shí)候可以作為臨時(shí)方案暫時(shí)替代一下。

解決方案2:采用緩存代理服務(wù)器
采用 Magent 緩存代理,防止單點(diǎn)現(xiàn)象,緩存代理也可以做備份,通過客戶端連接到緩存代理服務(wù)器,緩存代理服務(wù)器連接緩存服務(wù)器,緩存代理服務(wù)器可以連接多臺(tái)Memcached機(jī)器可以將每臺(tái)Memcached機(jī)器進(jìn)行數(shù)據(jù)同步。這樣的架構(gòu)比較完善了,如果其中一臺(tái)緩存代理服務(wù)器down機(jī),系統(tǒng)依然可以繼續(xù)工作,如果其中一臺(tái)Memcached機(jī)器down掉,數(shù)據(jù)不會(huì)丟失并且可以保證數(shù)據(jù)的完整性,以上描述的系統(tǒng)架構(gòu)如圖所示:
/Uploads-s/new/2019-09-30-201930/092Ia358-2.png
查看大圖請(qǐng)點(diǎn)擊這里

還是那句話:沒有任何架構(gòu)是最完美的,只是最合適的,任何架構(gòu)都不可能一步到位,都是經(jīng)過一步一步演變過來的。

–end–

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Memcached集群/分布式的單點(diǎn)故障

Memcached集群/分布式的單點(diǎn)故障:口水: Memcached在2009風(fēng)靡全球,現(xiàn)在對(duì)Memcached態(tài)度大家各自褒貶不一,話不多說進(jìn)入正題。 我看到過這樣一段文字 memcached如何處理容錯(cuò)的? 不處理!:) 在memcached節(jié)點(diǎn)失效的情況下,集群沒有必要做任何容錯(cuò)處理。如果發(fā)生了節(jié)點(diǎn)失效,應(yīng)對(duì)的措施完全取
推薦度:
標(biāo)簽: 故障 口水 單點(diǎn)
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top