上一篇 <<<緩存策略匯總
下一篇 >>>服務(wù)的隔離炊林、降級(jí)和熔斷
1.RPC與本地調(diào)用的區(qū)別
RPC遠(yuǎn)程調(diào)用滩援,一般是跨平臺(tái)破衔、采用http協(xié)議,因?yàn)閔ttp協(xié)議底層使用socket技術(shù),只要你的語(yǔ)言支持socket技術(shù),就可以相互進(jìn)行通訊谨究。
比如:java語(yǔ)言開發(fā)的接口,使用http協(xié)議快鱼,如此以來C#語(yǔ)言可以調(diào)用。
本地調(diào)用:只支持java語(yǔ)言與java語(yǔ)言開發(fā)纲岭,使用虛擬機(jī)和虛擬機(jī)之間的通訊抹竹,RMI。
2.雪崩效應(yīng)產(chǎn)生的原因
默認(rèn)情況下只有一個(gè)線程池維護(hù)所有的服務(wù)接口止潮,如果大量的請(qǐng)求訪問同一個(gè)接口窃判,達(dá)到tomcat線程池默認(rèn)極限,可能會(huì)導(dǎo)致其他服務(wù)無法訪問沽翔。
3.雪崩效應(yīng)的解決思路
服務(wù)器在高并發(fā)下會(huì)產(chǎn)生雪崩效應(yīng)兢孝,為了解決此可以窿凤,主要可以從三方面解決
a仅偎、緩存:提升系統(tǒng)訪問速度和增大系統(tǒng)能處理的容量,可謂是抗高并發(fā)流量的核心雳殊。
b橘沥、服務(wù)隔離、熔斷夯秃、降級(jí)等,當(dāng)服務(wù)出問題或者影響到核心流程的性能則需要暫時(shí)屏蔽掉座咆,待高峰或者問題解決后再打開;
隔離:讓各服務(wù)使用獨(dú)立的線程池仓洼,互不影響介陶。
熔斷:當(dāng)服務(wù)達(dá)到最大的承受極限直接拒絕訪問,使用服務(wù)降級(jí)色建。
降級(jí):用戶一直等待時(shí)哺呜,給客戶端一個(gè)友好的錯(cuò)誤提示。
c箕戳、限流:不能使用緩存或降級(jí)時(shí)的解決方案某残,比如稀缺資源(秒殺国撵、搶購(gòu))、寫服務(wù)(如評(píng)論玻墅、下單)介牙、頻繁的復(fù)雜查詢(評(píng)論的最后幾頁(yè))。
Hystrix是一個(gè)微服務(wù)關(guān)于服務(wù)保護(hù)的框架澳厢,是Netflix開源的一款針對(duì)分布式系統(tǒng)的延遲和容錯(cuò)解決框架环础,目的是用來隔離分布式服務(wù)故障。
限流和服務(wù)保護(hù)都需要和服務(wù)降級(jí)共同使用赏酥。
白話文理解:
服務(wù)保護(hù):當(dāng)服務(wù)產(chǎn)生堆積的時(shí)候喳整,對(duì)服務(wù)實(shí)現(xiàn)保護(hù)功能
服務(wù)隔離:保證每個(gè)服務(wù)互不影響,使用信號(hào)量或線程池方式
服務(wù)降級(jí):當(dāng)服務(wù)不可用的時(shí)候裸扶,不會(huì)被等待框都,直接給客戶端一個(gè)友好提示
服務(wù)熔斷:當(dāng)服務(wù)器達(dá)到最大的承受能力后,直接決絕訪問服務(wù)呵晨,采用服務(wù)降級(jí)返回友好提示魏保。
推薦閱讀:
<<<高并發(fā)架構(gòu)的整體思路
<<<一個(gè)網(wǎng)站訪問慢的真正原因
<<<高并發(fā)情況下,接口的代碼會(huì)存在哪些問題
<<<壓縮靜態(tài)資源減少帶寬傳輸?shù)姆绞?/a>
<<<動(dòng)靜分離架構(gòu)模式
<<<緩存策略匯總
<<<服務(wù)的隔離摸屠、降級(jí)和熔斷
<<<服務(wù)限流之計(jì)數(shù)器方式
<<<服務(wù)限流之滑動(dòng)窗口計(jì)數(shù)
<<<服務(wù)限流之令牌桶算法
<<<服務(wù)限流之漏桶算法
<<<漏桶算法和令牌桶算法的區(qū)別
<<<自定義封裝限流算法
<<<應(yīng)用級(jí)限流
<<<接入層限流