6-SpringCloudAlibaba引入hytrix
1. 序言
前面已经将openfeign引入了,现在引入hytrix做负载服务熔断降级
1.1. hystrix 引入
1.1.1. pom依赖
1 | <dependency> |
注意不要引入到
1 | <dependency> |
没有starter自动配置会报错的
1.1.2. 启动类添加注解@EnableCircuitBreaker
1 |
|
1.1.3. Feign调用的地方
@FeignClient注解
1
2
3
4
5
6
7
8
9
10
11
12
13
public interface HelloFeignHystrix {
public Object hello();
}实现类
fallback 实现
1
2
3
4
5
6
7
public class HelloFeignHystrixFallback implements HelloFeignHystrix {
public Object hello() {
return "服务调用异常,通过HelloFeign2Fallback降级熔断处理";
}
}fallbackFactory实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class HelloFeignHystrixFallbackFactory implements FallbackFactory<HelloFeignHystrix> {
public HelloFeignHystrix create(Throwable throwable) {
//可以做异常处理
throwable.printStackTrace();
return new HelloFeignHystrix() {
public Object hello() {
return "服务调用异常,通过HelloFeignFallbackFactory降级熔断处理";
}
};
}
}
配置feign的时候选择fallback或fallbackFactory其中一个就好
- fallback: 指定一个回调类,回调类实现
@FeignClient
注解的接口,并且加入容器中。
当出现需要回调的时候会调用此类。 - fallbackFactory: 指定一个回调类,回调类实现
FallbackFactory
接口,加入容器中。泛型为@FeignClient
注解的类,覆写create()
方法
当出现需要回调的时候会调用此类。
fallback 与 fallbackFactory的区别就在于FallbackFactory
会返回异常信息Throwable
,可以用此处理其他的业务逻辑,如存储日志,打印异常等。
一般建议使用FallbackFactory
接口
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 KewenBlogs!
评论