Gradle+Springcloud构建项目(四)Hystrix 断路器
上期回顾:
上期的文章中,我们引入了Hystrix 这个jar包,但是并没有使用,这次,我们就来讲一讲Hystrix 怎么用。

Feign中使用断路器
Feign是自带断路器的,在D版本的Spring Cloud之后,它没有默认打开。需要在配置文件中配置打开它,在配置文件加以下代码:
feign.hystrix.enabled=true
Hystrix 理论不复杂,用起来也简单,只需要定义一个简单的类,并继承我们之前的接口
然后在接口里加上这么一句话
断路器就写好了。。。。
HystrixCommand项目
可以在启动类中加入@EnableCircuitBreaker注解来开启

然后我们就可以为所欲为啦~
public @interface HystrixCommand {
// HystrixCommand 命令所属的组的名称:默认注解方法类的名称
String groupKey() default "";
// HystrixCommand 命令的key值,默认值为注解方法的名称
String commandKey() default "";
// 线程池名称,默认定义为groupKey
String threadPoolKey() default "";
// 定义回退方法的名称, 此方法必须和hystrix的执行方法在相同类中
String fallbackMethod() default "";
// 配置hystrix命令的参数
HystrixProperty[] commandProperties() default {};
// 配置hystrix依赖的线程池的参数
HystrixProperty[] threadPoolProperties() default {};
// 如果hystrix方法抛出的异常包括RUNTIME_EXCEPTION,则会被封装HystrixRuntimeException异常。我们也可以通过此方法定义哪些需要忽略的异常
Class<? extends Throwable>[] ignoreExceptions() default {};
// 定义执行hystrix observable的命令的模式,类型详细见ObservableExecutionMode
ObservableExecutionMode observableExecutionMode() default ObservableExecutionMode.EAGER;
// 如果hystrix方法抛出的异常包括RUNTIME_EXCEPTION,则会被封装HystrixRuntimeException异常。此方法定义需要抛出的异常
HystrixException[] raiseHystrixExceptions() default {};
// 定义回调方法:但是defaultFallback不能传入参数,返回参数和hystrix的命令兼容
String defaultFallback() default "";
}
关于Hystrix 的很多内容,网上都有详尽的解释,我这边就不重复了,这边给大家几个地址,可以去看看
本文介绍了如何在Gradle+Springcloud项目中使用Hystrix断路器,包括在Feign中启用断路器的配置方法以及创建HystrixCommand的步骤。通过在配置文件中打开Feign的断路器开关,以及定义并继承接口,实现了断路器的简单应用。同时,文章提到开启断路器可以通过在启动类中添加@EnableCircuitBreaker注解。对于Hystrix的深入理解,推荐了一些在线资源供读者参考。
3550

被折叠的 条评论
为什么被折叠?



