一、雪崩效應(yīng)hystrix的演變流程
二、雪崩原因
造成雪崩的原因可歸納為如下三個(gè):
1)服務(wù)提供者不可用(硬件故障柒爸、程序bug、緩存擊穿事扭、用戶大量請(qǐng)求)
2)重試加大流量(用戶重試捎稚、代碼邏輯重試)
3)服務(wù)調(diào)用者不可用(同步等待造成的資源耗盡)
最終的結(jié)果就是一個(gè)服務(wù)不可用,導(dǎo)致一系列服務(wù)的不可用求橄,而往往這種后果是無(wú)法預(yù)料的今野。
三、如何解決災(zāi)難性雪崩效應(yīng)谈撒?
1)降級(jí):超時(shí)降級(jí)、資源不足時(shí)(線程或信號(hào)量)降級(jí)匾南,降級(jí)后可以配合降級(jí)接口返回托底數(shù)據(jù)啃匿。實(shí)現(xiàn)一個(gè)fallback方法,當(dāng)請(qǐng)求后端服務(wù)出現(xiàn)異常時(shí)蛆楞,可以使用fallback 方法返回的值溯乒。
2)隔離(線程池隔離和信號(hào)量隔離):限制調(diào)用分布式服務(wù)的資源使用,某一個(gè)調(diào)用的服務(wù)出現(xiàn)問(wèn)題不會(huì)影響其他服務(wù)調(diào)用豹爹。
融斷:當(dāng)失敗率(如因網(wǎng)絡(luò)故障/超時(shí)造成的失敗率高)達(dá)到閥值自動(dòng)觸發(fā)降級(jí)裆悄,熔斷器觸發(fā)的快速失敗會(huì)進(jìn)行快速恢復(fù)。
緩存:提供了請(qǐng)求緩存臂聋。
請(qǐng)求合并:提供請(qǐng)求合并光稼。
后續(xù)會(huì)對(duì)雪崩的解決方案逐一講解,敬請(qǐng)期待孩等。艾君。