<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ps:Hystrix和Fegin里面使用的Hystrix,有些許區別.我理解的是Fegin.Hystrix主要是用于消費方在調用服務方接口時的異常處理,返回兜底數據等,而Hystrix則是消費方自己本身發生了異常時的處理

      c

      熔斷:
              保險絲,熔斷服務,為了防止整個系統故障,包含子和下游服務

              下單服務 -》商品服務
                      -》用戶服務 (出現異常-》熔斷)

          降級:
              拋棄一些非核心的接口和數據

              旅行箱的例子:只帶核心的物品,拋棄非核心的,等有條件的時候再去攜帶這些物品

              
          熔斷和降級互相交集
              相同點:
                  1)從可用性和可靠性觸發,為了防止系統崩潰
                  2)最終讓用戶體驗到的是某些功能暫時不能用

              不同點
                  1)服務熔斷一般是下游服務故障導致的,而服務降級一般是從整體系統負荷考慮,由調用方控制

      1.引入依賴

       <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
              </dependency>

      2.啟動類增加注解@EnableCircuitBreaker

       

       

       3.在需要使用熔斷器的方法上增加注解@HystrixCommand(fallbackMethod = "saveOrderFail")

        

       @RequestMapping("save")
          @HystrixCommand(fallbackMethod = "saveOrderFail")
          public Object save(@RequestParam("user_id")int userId,@RequestParam("product_id")int productId){
            
          };

      4.編寫saveOrderFail方法

      //方法簽名要和api一致
          public Object saveOrderFail(int userId,int productId){
              //寫下你期望用戶請求失敗之后返回的操作 TODO
          }

      5.老師的思路,實在這里引入redis,一定時間就發送短信,郵件,或者打電話通知開發人員并且帶上IP地址,需要定位問題,

       //方法簽名要和api一致
          public Object saveOrderFail(int userId,int productId){
              Map<String, Object> msg = new HashMap<>();
      
              //監控報警
              String saveOrderKey = "save-order";
      
              String sendValue = stringRedisTemplate.opsForValue().get(saveOrderKey);
              /**
               * 熔斷告警機制:在redis中存儲具有時效性的key,然后通過這個key是否存在來進行短信告警
               * 1.并發高的時候這樣可能會多發短信,要采用鎖
               * 2.也可以在每個服務本地安裝一個redis,在發送短信的時附上每個服務的IP,更加便于排查錯誤
               */
             new Thread(()->{
                 if(StringUtils.isBlank(sendValue)){
                     System.out.println("緊急短信,用戶下單失敗,請立刻查找原因");
                     //TODO 調用HTTP請求,調用短信服務
      
                     stringRedisTemplate.opsForValue().set(saveOrderKey,"save-order-fail",20, TimeUnit.SECONDS);
                 }else{
                     System.out.println("已經發送過短信,20秒內不要重復發送");
                 }
      
             }).start();
      
              msg.put("code",-1);
              msg.put("msg","搶購人數過多,請稍后再試");
              return msg;
          }

       累了,敲一天了,不寫了

       

      posted on 2021-06-04 15:46  程英俊  閱讀(144)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产精品日韩在线| 中文字幕色偷偷人妻久久| 国产一区精品综亚洲av| 无码三级av电影在线观看| 久久精品国产蜜臀av| 99久久久无码国产精品免费| 国产久免费热视频在线观看| 免费99视频| 116美女极品a级毛片| 日韩成人一区二区三区在线观看| 中文字幕国产精品二区| 久久精品国产一区二区蜜芽| 中文无码乱人伦中文视频在线| 含紧一点h边做边走动免费视频| 国产在线观看免费观看不卡| 日韩亚av无码一区二区三区| 国产欧美丝袜在线二区| 丁香五香天堂网| 免费看成人欧美片爱潮app| 91国产自拍一区二区三区 | 另类专区一区二区三区| 潼南县| 波多野结衣久久一区二区| 亚洲一区在线观看青青蜜臀| 亚洲色婷婷婷婷五月基地| 成人免费无遮挡在线播放| 亚洲熟妇丰满多毛xxxx| 亚洲东京色一区二区三区| 玩弄放荡人妻少妇系列| 亚洲情A成黄在线观看动漫尤物| 久久国产成人高清精品亚洲| 国产又爽又黄又爽又刺激| 青川县| 欧美人与动交视频在线观看| 欧美激情一区二区三区成人| 亚洲色精品vr一区区三区| 波多野结av在线无码中文免费 | 蜜桃网址| 美女无遮挡免费视频网站| 欧美成人h亚洲综合在线观看| 久久亚洲精品11p|