緩存雪崩:什么是緩存雪崩?服務(wù)器雪崩的場(chǎng)景與解決方案
【溫馨提醒】文章內(nèi)容僅供參考,海外服務(wù)器租用\托管方案,請(qǐng)咨詢YINGSOO客服,24小時(shí)免費(fèi)電話400-630-3752
【熱門主機(jī)】加拿大服務(wù)器丨韓國(guó)服務(wù)器丨香港cn2服務(wù)器丨美國(guó) 服務(wù)器
【熱搜問(wèn)題】國(guó)外的服務(wù)器租用多少錢一年合適?

什么是應(yīng)用服務(wù)雪崩
雪崩問(wèn)題
分布式系統(tǒng)都存在這樣一個(gè)問(wèn)題,由于網(wǎng)絡(luò)的不穩(wěn)定性,決定了任何一個(gè)服務(wù)的可用性都不是 100% 的。當(dāng)網(wǎng)絡(luò)不穩(wěn)定的時(shí)候,作為服務(wù)的提供者,自身可能會(huì)被拖死,導(dǎo)致服務(wù)調(diào)用者阻塞,最終可能引發(fā)雪崩連鎖效應(yīng)。
緩存雪崩
當(dāng)緩存服務(wù)器重啟或者大量緩存集中在某一個(gè)時(shí)間段失效,這樣在失效的時(shí)候,也會(huì)給后端系統(tǒng)(比如db)帶來(lái)很大壓力,造成數(shù)據(jù)庫(kù)后端故障,從而引起應(yīng)用服務(wù)器雪崩。
雪崩效應(yīng)產(chǎn)生的幾種場(chǎng)景
流量激增:比如異常流量、用戶重試導(dǎo)致系統(tǒng)負(fù)載升高; 緩存刷新:假設(shè)A為client端,b為server端,假設(shè)A系統(tǒng)請(qǐng)求都流向b系統(tǒng),請(qǐng)求超出了b系統(tǒng)的承載能力,就會(huì)造成b系[高防服務(wù)器]統(tǒng)崩潰; 程序有bug:代碼循環(huán)調(diào)用的邏輯問(wèn)題,資源未釋放引起的內(nèi)存泄漏等問(wèn)題; 硬件故障:比如宕機(jī),機(jī)房斷電,光纖被挖斷等。 數(shù)據(jù)庫(kù)嚴(yán)重瓶頸,比如:長(zhǎng)事務(wù)、sql超時(shí)等。 線程同步等待:系統(tǒng)間經(jīng)常采用同步服務(wù)調(diào)用模式,核心服務(wù)和非核心服務(wù)共用一個(gè)線程池和消息隊(duì)列。如果一個(gè)核心業(yè)務(wù)線程調(diào)用非核心線程,這個(gè)非核心線程交由第三方系統(tǒng)完成,當(dāng)?shù)谌较到y(tǒng)本身出現(xiàn)問(wèn)題,導(dǎo)致核心線程阻塞,一直處于等待狀態(tài),而進(jìn)程間的調(diào)用是有超時(shí)限制的,最終這條線程將斷掉,也可能引發(fā)雪崩;緩存雪崩的解決方案
緩存失效的幾種情況:
1、緩存服務(wù)器掛了
2、高峰期緩存局部失效
3、熱點(diǎn)緩存失效
解決方案:
1、避免緩存集中失效,不同的key設(shè)置不同的超時(shí)時(shí)間
2、增加互斥鎖,控制數(shù)據(jù)庫(kù)請(qǐng)求,重建緩存。
3、[云主機(jī)計(jì)算器]提高緩存的HA,如:redis集群。
雪崩的整體解決方案
一般情況對(duì)于服務(wù)依賴的保護(hù)主要有3種解決方案:
?。?)熔斷模式
這種模式主要是參考電路熔斷,如果一條線路電壓過(guò)高,保險(xiǎn)絲會(huì)熔斷,防止火災(zāi)。放到我們的系統(tǒng)中,如果某個(gè)目標(biāo)服務(wù)調(diào)用慢或者有大量超時(shí),此時(shí),熔斷該服務(wù)的調(diào)用,對(duì)于后續(xù)調(diào)用請(qǐng)求,不在繼續(xù)調(diào)用目標(biāo)服務(wù),直接返回,快速釋放資源。如果目標(biāo)服務(wù)情況好轉(zhuǎn)則恢復(fù)調(diào)用。
重點(diǎn)監(jiān)控的機(jī)器性能指標(biāo)
cpu(Load) cpu使用率/負(fù)載 memory 內(nèi)存 mysql監(jiān)控長(zhǎng)事務(wù)(這里與sql查詢超時(shí)是緊密結(jié)合的,需要重點(diǎn)監(jiān)控) sql超時(shí) 線程數(shù)等總之,除了cpu、內(nèi)存、線程數(shù)外,重點(diǎn)監(jiān)控?cái)?shù)據(jù)庫(kù)端的長(zhǎng)事務(wù)、sql超時(shí)等,絕大多數(shù)應(yīng)用服務(wù)器發(fā)生的雪崩場(chǎng)景,都是來(lái)源于數(shù)據(jù)庫(kù)端的性能瓶頸,從而先引起數(shù)據(jù)庫(kù)端大量瓶頸,最終拖累應(yīng)用服務(wù)器也發(fā)生雪崩,最后就是大面積的雪崩。
?。?)隔離模式
這種模式就像對(duì)系統(tǒng)請(qǐng)求按類型劃分成一個(gè)個(gè)小島的一樣,當(dāng)某個(gè)小島被火少光了,不會(huì)影響到其他的小島。
例如可以對(duì)不同類型的請(qǐng)求使用線程池來(lái)資源隔離,每種類型的請(qǐng)求互不影響,如果一種類型的請(qǐng)求線程資源耗盡,則對(duì)后續(xù)的該類型請(qǐng)求直接返回,不再調(diào)用后續(xù)資源。這種模式使用場(chǎng)景非常多,例如將一個(gè)服務(wù)拆開,對(duì)于重要的服務(wù)使用單獨(dú)服務(wù)器來(lái)部署,再或者公司最近推廣的多中心。
?。?)限流模式
上述的熔斷模式和隔離模式都屬于出錯(cuò)后的容錯(cuò)處理機(jī)制,而限流模式則可以稱為預(yù)防模式。限流模式主要是提前對(duì)各個(gè)類型的請(qǐng)求設(shè)置最高的Qps閾值,若高于設(shè)置的閾值則對(duì)該請(qǐng)求直接返回,不再調(diào)用后續(xù)資源。這種模式不能解決服務(wù)依賴的問(wèn)題,只能解決系統(tǒng)整體資源分配問(wèn)題,因?yàn)闆](méi)有被限流的請(qǐng)求依然有可能造成雪崩效應(yīng)。
熔斷設(shè)計(jì)
在熔斷的設(shè)計(jì)主要參考了hystrix的做法。其中最重要的是三個(gè)模塊:熔斷請(qǐng)求判斷算法、熔斷恢復(fù)機(jī)制、熔斷報(bào)警
?。?)熔斷請(qǐng)求判斷機(jī)制算法:使用無(wú)鎖循環(huán)隊(duì)列計(jì)數(shù),每個(gè)熔斷器默認(rèn)維護(hù)10個(gè)bucket,每1秒一個(gè)bucket,每個(gè)blucket記錄請(qǐng)求的成功、失敗、超時(shí)、拒絕的狀態(tài),默認(rèn)錯(cuò)誤超過(guò)50%且10秒內(nèi)超過(guò)20個(gè)請(qǐng)求進(jìn)行中斷攔截。
(2)熔斷恢復(fù):對(duì)于被熔斷的請(qǐng)求,每隔5s允許部分請(qǐng)求通過(guò),若請(qǐng)求都是健康的(Rt<250ms)則對(duì)請(qǐng)求健康恢復(fù)。
?。?)熔斷報(bào)警:對(duì)于熔斷的請(qǐng)求打日志,異常請(qǐng)求超過(guò)某些設(shè)定則報(bào)警。
隔離設(shè)計(jì)
隔離的方式一般使用兩種
?。?)線程池隔離模式:使用一個(gè)線程池來(lái)存儲(chǔ)當(dāng)前的請(qǐng)求,線程池對(duì)請(qǐng)求作處理,設(shè)置任務(wù)返回處理超時(shí)時(shí)間,堆積的請(qǐng)求堆積入線程池隊(duì)列。這種方式需要為每個(gè)依賴的服務(wù)申請(qǐng)線程池,有一定的資源消耗,好處是可以應(yīng)對(duì)突發(fā)流量(流量洪峰來(lái)臨時(shí),處理不完可將數(shù)據(jù)存儲(chǔ)到線程池隊(duì)里慢慢處理)
?。?)信號(hào)量隔離模式:使用一個(gè)原子計(jì)數(shù)器(或信號(hào)量)來(lái)記錄當(dāng)前有多少個(gè)線程在運(yùn)行,請(qǐng)求來(lái)先判斷計(jì)數(shù)器的數(shù)值,若超過(guò)設(shè)置的最大線程個(gè)數(shù)則丟棄改類型的新請(qǐng)求,若不超過(guò)則執(zhí)行計(jì)數(shù)操作請(qǐng)求來(lái)計(jì)數(shù)器+1,請(qǐng)求返回計(jì)數(shù)器-1。這種方式是嚴(yán)格的控制線程且立即返回模式,無(wú)法應(yīng)對(duì)突發(fā)流量(流量洪峰來(lái)臨時(shí),處理的線程超過(guò)數(shù)量,其他的請(qǐng)求會(huì)直接返回,不繼續(xù)去請(qǐng)求依賴的服務(wù))
超時(shí)機(jī)制設(shè)計(jì)
?。?)超時(shí)分兩種,一種是請(qǐng)求的等待超時(shí),一種是請(qǐng)求運(yùn)行超時(shí)。
(2)等待超時(shí):在任務(wù)入隊(duì)列時(shí)設(shè)置任務(wù)入隊(duì)列時(shí)間,并判斷隊(duì)頭的任務(wù)入隊(duì)列時(shí)間是否大于超時(shí)時(shí)間,超過(guò)則丟棄任務(wù)。
(3)運(yùn)行超時(shí):直接可使用線程池提供的get方法。
如何提前發(fā)現(xiàn)雪崩
就是首先讓系統(tǒng)不雪崩,然后通過(guò)監(jiān)控發(fā)現(xiàn)請(qǐng)求正在接近或者超過(guò)閥值,然后再根據(jù)具體情況處理,這個(gè)接近或者超過(guò)閥值的過(guò)程,可以稱為 “提前發(fā)現(xiàn)雪崩”。
以上就是應(yīng)用服務(wù)雪崩的場(chǎng)景以及技術(shù)方案總結(jié)。有問(wèn)題請(qǐng)聯(lián)系本公司在線客服!
香港云主機(jī)高速穩(wěn)定便宜好用
許多客戶挑選建站全是挑選香港主機(jī)或是香港云主機(jī),大伙兒為何喜愛(ài)租賃香港主機(jī)?
香港主機(jī)的含意就是說(shuō)放到香港機(jī)房大數(shù)據(jù)中心的服務(wù)器主機(jī),中國(guó)香港因所在位置間距內(nèi)地近在眼前,因此香港主機(jī)的延遲時(shí)間是很低的,響應(yīng)時(shí)間快,速率和中國(guó)服務(wù)器非常。
香港云主機(jī)不用備案,假如應(yīng)用中國(guó)服務(wù)器得話是必須備案主機(jī)房才會(huì)幫你加進(jìn)權(quán)限,主機(jī)房才會(huì)給你打開80端口號(hào)的瀏覽權(quán),當(dāng)你的網(wǎng)站域名是沒(méi)有備案過(guò)的,是不可以應(yīng)用國(guó)內(nèi)服務(wù)器開展建站的。
[海外vps云服務(wù)器]而香港云主機(jī)就沒(méi)有這種繁雜的程序流程,即買即用,不用備案。
香港云主機(jī)器合適一些[惠州游戲服務(wù)器]對(duì)帶寬防御力規(guī)定較低的客戶,由于國(guó)際帶寬費(fèi)很價(jià)格昂貴,因此香港云主機(jī)的價(jià)錢對(duì)比中國(guó)服務(wù)器的價(jià)錢是高于一些的,一樣香港云主機(jī)的防御力一般是很低的,且價(jià)格比較貴,
YINGSOO電話:4006 303 752
熱門文章:【怎樣有效管理Linux服務(wù)器系統(tǒng)的日志】【web服務(wù)器被攻擊】【香港的服務(wù)器】【蜀門游戲】【國(guó)外便宜服務(wù)器】【我國(guó)需要多少個(gè)數(shù)據(jù)中心】【香港網(wǎng)站服務(wù)器YINGSOO怎么樣】【新加坡服務(wù)器租用中有哪些常見(jiàn)問(wèn)題】【動(dòng)態(tài)計(jì)算】【服務(wù)器被攻擊】【如何快速分辨海外高防服務(wù)器好壞】【臺(tái)州機(jī)房】【游戲云主機(jī)配置】【網(wǎng)吧服務(wù)器多少錢一臺(tái)】【java網(wǎng)游服務(wù)器】【服務(wù)器被攻擊】【東莞云主機(jī)】【美國(guó)CN2線路】【如何辨別美國(guó)10G高防服務(wù)器真假】【最新美國(guó)vps】【YINGSOO美國(guó)服務(wù)器提供種類有多少】【2200G硬件防火墻】【美國(guó)多ip站群】【臺(tái)灣服務(wù)器適合做什么類型的業(yè)務(wù)】【香港服務(wù)器端口知多少】【公司服務(wù)器租用中國(guó)香港的利與弊剖析】【裸金屬主機(jī)】【香港bgp機(jī)房】【好用的云服務(wù)器】【傳奇服務(wù)器租用】
香港快速主機(jī),快速穩(wěn)定,選知名品牌YINGSOO
Yingsoo香港快速主機(jī)采用CN2電信直連香港,速度延遲低至10ms,快速,安全,穩(wěn)定,免備案9年運(yùn)營(yíng)經(jīng)驗(yàn), 服務(wù)超過(guò)1200家企業(yè)客戶,連續(xù)9年香港快速主機(jī)銷量持續(xù)增長(zhǎng)
http://maisonbaluchon.cn/products/cloud-hk.html
9年韓國(guó)主機(jī)業(yè)務(wù)運(yùn)營(yíng)經(jīng)驗(yàn),1200家企業(yè)客戶共同選擇.韓國(guó)Korea Telecom機(jī)房核心合作伙伴,機(jī)房帶寬資源充足,到國(guó)內(nèi)速度平均在80ms左右.
http://maisonbaluchon.cn/products/cloud-kr.html
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信