Feign 中获取 Fallback 异常原因:使用 FallbackFactory 实现
在 Feign 中使用服务降级(Fallback)时,仅通过fallback属性指定降级类无法获取导致降级的具体异常原因(如超时、服务不可用等)。此时,fallbackFactory属性是更优的选择,它能捕获异常信息并在降级逻辑中使用,便于问题排查和日志记录。
fallback与fallbackFactory的区别
| 方式 | 特点 | 适用场景 |
|---|---|---|
fallback |
直接指定降级类,无法获取异常信息 | 仅需返回默认结果,不关心降级原因 |
fallbackFactory |
通过工厂类创建降级实例,可捕获异常 | 需要记录降级原因(如日志、监控) |
使用fallbackFactory获取异常原因的步骤
1. 定义 Feign 客户端接口,指定fallbackFactory
1 |
|
2. 实现FallbackFactory接口,捕获异常信息
通过create(Throwable cause)方法获取异常原因(如连接超时、服务宕机等),并在降级逻辑中处理: