服務(wù)降級
在高并發(fā)的情況下,防止用戶一直等待,使用服務(wù)器降級方式(返回一個友好提示給客戶端,不會去處理請求,調(diào)用fallBack)
秒殺------當前請求人數(shù)過多,請稍后重試
如果調(diào)用其他接口超時的時候(默認是一秒時間),如果在一秒鐘沒有及時響應(yīng)的話,在默認情況下業(yè)務(wù)邏輯是可以執(zhí)行的,但是直接執(zhí)行服務(wù)器降級方法。
(在tomact 中沒有線程進行處理客戶端請求的時候,不應(yīng)該讓用戶一直在轉(zhuǎn)圈等待。)
服務(wù)隔離
服務(wù)熔斷目的是為了保護服務(wù),在高并發(fā)的情況下,如果請求達到了一定的極限(可以直接設(shè)置閾值),如果流量超出了設(shè)置的閾值,自動開啟保護服務(wù)的功能,使用服務(wù)降級方式返回一個友好的提示,服務(wù)熔斷機制和服務(wù)降級一起使用。
服務(wù)熔斷
家里電閘保險絲
服務(wù)器隔離機制 線程池隔離: 每個服務(wù)接口都有自己獨立的線程池,每個線程池互不影響,缺點:CPU占有率非常高。不是所有的接口都去采用線程隔離,核心關(guān)鍵接口
@HystrixCommand(fallbacMethod="")
默認開啟服務(wù)隔離方式,以線程池方式
默認開啟服務(wù)降級執(zhí)行方法
-
默認開啟服務(wù)熔斷機制
/*** zengyujun * fallbackMethod 方法作用:服務(wù)降級執(zhí)行。 * @HystrixCommand 默認開啟服務(wù)隔離,以線程池隔離方式 * 默認開啟服務(wù)降級執(zhí)行方法 getUserInfoByMemberHystrixFallbackMethod * 默認開啟服務(wù)服務(wù)熔斷機制 */ @HystrixCommand(fallbackMethod = "getUserInfoByMemberHystrixFallbackMethod") @RequestMapping("/getUserInfoByMemberHystrix") public BaseResponse getUserInfoByMemberHystrix() { System.out.println("getUserInfoByMemberHystrix-->線程池名稱:" + Thread.currentThread().getName()); return memberServiceFeign.getUserInfo(); } public BaseResponse getUserInfoByMemberHystrixFallbackMethod() { return new BaseResponse(500, "返回一個友好提示", "服務(wù)降級 ,服務(wù)器繁忙,請稍后重試!"); }