2017-12-03 61 views
0

根據理解,Hystrix回退邏輯在發生某些情況時觸發,例如請求超時,線程池以100%的容量運行或依賴關係拋出異常。除了這3個因素外,我還可以添加更多的條件,這些條件也被認爲是失敗的,例如413(負載太大)等任何特定的HTTP錯誤代碼?在Hystrix中觸發回退的自定義錯誤條件

回答

0

豪豬的備用方法將在以下條件下被稱爲

  • 開路
  • 信號/線程池拒絕
  • 執行失敗(按你的方法排除HystrixBadRequestException拋出的任何異常)
  • 您的方法超時(hystrix超時)

只有部分臨時t直接關係到用戶代碼執行失敗。

在這種情況下,回退將由run()方法拋出的任何異常觸發。純Hystrix通過HystrixCommand和Hystrix Javanica通過註釋完全相同。

只有一個例外,它不會觸發HystrixBadRequestException

因此,如果你想也觸發回退的HTTP 413狀態碼,你必須只是扔你的方法中的任何異常。

如果您正在使用任何內置Hystrix支持(如Spring Cloud Feign)的庫,則需要實現該庫所需的一些內容。在Spring Cloud Feign的情況下,您可以實施自己的ErrorDecoder。默認錯誤解碼器將觸發所有4XX,5XX錯誤的後備。如果您不想觸發除413之外的任何後退4XX錯誤,則可以在其中輸入HystrixBadRequestException

相關問題