服務(wù)之間的依賴關(guān)系,如果有被依賴的服務(wù)掛了以后,造成其它服務(wù)也會(huì)出現(xiàn)請(qǐng)求堆積、資源占用,慢慢擴(kuò)散到所有服務(wù),引發(fā)雪崩效應(yīng)。
而容錯(cuò)就是要解決這類問題,常見的方式:
主動(dòng)超時(shí):Http請(qǐng)求主動(dòng)設(shè)置一個(gè)超時(shí)時(shí)間,超時(shí)就直接返回,不會(huì)造成服務(wù)堆積限流:限制最大并發(fā)數(shù)熔斷:當(dāng)錯(cuò)誤數(shù)超過閾值時(shí)快速失敗,不調(diào)用后端服務(wù),同時(shí)隔一定時(shí)間放幾個(gè)請(qǐng)求去重試后端服務(wù)是否能正常調(diào)用,如果成功則關(guān)閉熔斷狀態(tài),失敗則繼續(xù)快速失敗,直接返回。(此處有個(gè)重試,重試就是彈性恢復(fù)的能力)隔離:把每個(gè)依賴或調(diào)用的服務(wù)都隔離開來,防止級(jí)聯(lián)失敗引起整體服務(wù)不可用降級(jí):服務(wù)失敗或異常后,返回指定的默認(rèn)信息