feign和ribbon的異常捕捉


1、在selectServer的時候,如果沒有對應的server,那么會拋出一個ClientException,然后被捕獲,進入RxJava的next鏈,最后再拋出異常給調用方法,這時候就需要我們自己處理。

2、如果有server,第一次失敗,如果沒到到最大重試次數,ribbon的RxJava的調用鏈會自己捕捉,進入重試,但是如果最大重試次數之后還是超時(ribbon的connectTimeout是1秒),ribbon的調用鏈不會捕獲,會拋出IOException到外層,被feign的RetryableException捕捉,但是feign默認的是不重試,結果再拋出異常給調用方法。

3、如果http請求成功,4**和5**的響應碼會在executeAndDecode方法中被處理,拋出異常,默認不是RetryableException,直接拋出異常給調用方法。ps:自己可以重寫retryAfterDecoder使得拋出的是RetryableException,進入feign的重試機制。

注意:feign的重試機制和ribbon不同,而且feign默認不重試


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM