Spring Cloud configures Hystrix using Feign Record
fallback vs fallbackFactory
fallback 方式无法获取异常内容, 只能做降级。
fallbackFactory 可以获取异常内容。
fallbackFactory 使用方式
- Maven -> Hystrix
- 配置文件修改
- 启动类注解@EnableCircuitBreaker开启断路器
- Feign 接口 (接口名假设为Feign, 方便下文描述) 的注解 @FeignClient(…… fallbackFactory = FallBackClass.class)设置fallback =
- 创建FallBackClass-> implements FallbackFactory
接口, T值为Feign 接口类名 - 创建 InheritanceClass 接口, 继承 Feign接口 Feign。 内容为空即可。
- 在 FallBackClass中override FallbackFactory的方法, 只有一个 create 方法, 其返回值类型为 Feign, this is why we need to do step5。
1 |
|
LOG.error(“ExceptionTest = {}”, throwable.getMessage())输出的内容
1 | ExceptionTest = status 500 reading PaymentConsumerFeign#consumePayment(String,String); content: |
Provider中抛出的异常
1 | if (state == 0){ |
fallback方式的使用
只需:
- @FeignClinet()中设置为fallback = FallBackClass
- 创建FallBackClass, implements Feign接口
- 对于每个方法, 写出降级内容即可