成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hystrix降級邏輯中如何獲取觸發的異常

開發 開發工具
為了更精準的定位觸發原因,或是在降級邏輯中需要根據不同的異常做不同的處理時,在降級方法中,我們希望可以獲取到主邏輯中拋出的異常信息。接下來就來介紹一下Hystrix兩種不同實現方式中如何在降級邏輯中獲取異常信息的方法。

通過之前Spring Cloud系列教程中的《Spring Cloud構建微服務架構:服務容錯保護(Hystrix服務降級)》一文,我們已經知道如何通過Hystrix來保護自己的服務不被外部依賴方拖垮的情況。但是實際使用過程中經常碰到開發反應“莫名”觸發了降級邏輯的情況。為了更精準的定位觸發原因,或是在降級邏輯中需要根據不同的異常做不同的處理時,在降級方法中,我們希望可以獲取到主邏輯中拋出的異常信息。接下來就來介紹一下Hystrix兩種不同實現方式中如何在降級邏輯中獲取異常信息的方法。

[[236808]]

注解方式

先介紹一下用注解方式定義的Hystrix命令是如何在降級邏輯中獲取異常的,實現非常簡單,先看下面的例子:

  1. @HystrixCommand(fallbackMethod = "fallback"
  2. User getUserById(String id) { 
  3.     throw new RuntimeException("getUserById command failed"); 
  4.  
  5. User fallback(String id, Throwable throwable) { 
  6.     return new User("def""def"); 

這里定義了一個主邏輯函數getUserById,主邏輯中會主動拋出一個異常,從而觸發該主邏輯的降級函數fallback。重點看fallback函數中的***一個傳參Throwable throwable。通過這樣的簡單定義,開發人員就可以很方便的獲取觸發降級邏輯的異常信息,用作日志記錄或者其它復雜的業務邏輯了。

繼承方式

在繼承方式中要獲取觸發異常也非常簡單,具體如下:

  1. public static class UserCommand extends HystrixCommand<User> { 
  2.  
  3.     protected UserCommand() { 
  4.         super(HystrixCommandGroupKey.Factory.asKey("UserCommand")); 
  5.     } 
  6.  
  7.     @Override 
  8.     protected User run() throws Exception { 
  9.         throw new RuntimeException("getUserById command failed"); 
  10.     } 
  11.  
  12.     @Override 
  13.     protected User getFallback() { 
  14.         System.out.println(getFailedExecutionException().getMessage()); 
  15.         return new User("def""def"); 
  16.     } 
  17.  

上面的實現同上一節注解方式的實現一樣,在使用繼承方式的時候通過getFailedExecutionException方法就可以獲取到觸發降級的異常信息了。

總結

我們在實際使用Hystrix的時候,有時候一些業務異?;蛘邇炔縍PC由服務提供方拋出的異常在消費方沒能考慮周到,會觸發一些意料之外的降級。所以在降級邏輯中,建議每一段都加入觸發異常的日志記錄,以方便定位問題原因。

【本文為51CTO專欄作者“翟永超”的原創稿件,轉載請通過51CTO聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-07-03 09:50:07

Spring Clou微服務架構

2023-01-02 11:34:04

LinuxFlatpak軟件包

2018-06-11 08:50:46

LinuxArch Linux降級軟件包

2023-03-09 12:21:38

2025-03-13 00:55:00

微服務架構系統

2021-09-28 09:16:43

SQLancerDBMS邏輯漏洞

2019-03-08 11:00:32

BashLinux

2009-03-18 08:59:28

throw異常Java

2015-07-30 10:12:32

JavaNullAssert

2025-02-05 10:02:03

Locust測試異常處理

2023-05-30 07:56:23

代碼軟件開發

2025-06-09 07:46:44

服務降級高并發

2025-05-28 03:20:00

布爾值編程True

2019-07-25 12:37:08

程序員技能開發者

2024-07-02 10:58:53

2021-10-06 19:01:45

高并發熔斷預熱

2017-12-01 08:54:18

SpringCloudHystrix

2021-06-05 05:11:52

代碼狀態機邏輯

2024-03-14 08:13:08

BFCWeb機制

2024-06-27 10:50:01

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久乐国产精品 | 日韩视频一区二区三区 | 国产精品亚洲精品久久 | 91青娱乐在线 | www.午夜 | www.夜夜草| 99精品国产一区二区三区 | 91精品国产91久久综合桃花 | 亚洲精品视频导航 | 亚洲一区二区在线播放 | 中文字幕日韩av | 在线国产中文字幕 | 手机日韩 | 国产精品一区久久久 | 91久久北条麻妃一区二区三区 | 一区二区三区视频在线 | 一级毛片免费看 | 国产精品欧美一区二区三区不卡 | 婷婷桃色网 | 成人免费毛片片v | 香蕉视频91 | 欧美性一区二区三区 | 91美女视频 | 三级特黄特色视频 | 午夜看片网站 | 日韩av在线中文字幕 | 激情久久久久 | 中文字幕在线播放第一页 | 97碰碰碰| 久久国产精品视频 | 亚洲黄色一级 | 国产精品一区二区av | 日韩精品一区二区三区中文在线 | 黄视频国产 | 精精国产xxxx视频在线播放7 | 久久综合狠狠综合久久综合88 | 女生羞羞视频 | 日韩电影免费在线观看中文字幕 | 在线观看中文字幕 | 欧美1区| 国产女人与拘做视频免费 |