OpenFeign+Hystrix 消费端服务降级方法执行顺序

考虑到一种情况:服务消费端既有Hystrix的全局/特定服务降级方法,又有@FeignClient修饰的接口所实现的降级服务类。异常以被零除为例:

  • 1.如果消费端有异常,服务端随意,消费端实现降级服务类,同时消费端控制方法有@HystrixCommand执行@HystrixCommand的降级方法

  • 2.如果消费端有异常,服务端随意,消费端实现降级服务类,消费端控制方法无@HystrixCommand,那么页面会报 Whitelabel Error Page java.lang.ArithmeticException: / by zero

  • 3.如果消费端无异常,服务端有异常,消费端实现降级服务类,消费端控制方法无@HystrixCommand执行降级服务类中对应的降级方法(理所当然)

  • 4.如果消费端无异常,服务端有异常,消费端实现降级服务类,同时消费端控制方法有@HystrixCommand执行降级服务类中对应的降级方法


总结:

  • 1.从4可以看出,服务端方法有异常时,降级服务类优先于@HystrixCommand。[最常见状况]
  • 2.从1/2可以看出。消费端方法本身有异常,降级服务类无法服务降级,但 其方法上的@HystrixCommand可以服务降级
  • 3.对于带有@DefaultProperties的控制类,具有独有降级服务的方法@HystrixCommand(fallbackMethod = "xxx"), 优先于 全局的降级服务方法@HystrixCommand
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值