SpringCloud之Hystrix解決服務(wù)雪崩效應(yīng)原理

服務(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ù)器繁忙,請稍后重試!");
      }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容