为什么使用Hystrix断路由
当较低层服务如果出现故障,就可能导致用户级联故障。当对特定的服务请求到达阀值时,断路器会开启,请求不可用······简单的说,就是在所请求的服务出现问题导致请求失败时,那么Hystrix就不会在去调用这个请求了,而直接调用所配置的fallback方法。
怎么样使用Hystrix
- 按照惯例,要使用一个东西,就要先在pom.xml文件中引入相关的starter。下面引入Hystrix的依赖包:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
2 .需要的配置:
- 在Application启动类上配置@EnableCircuitBreaker 以开启断路器的使用;
@SpringBootApplication
@EnableCircuitBreaker
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
- 在要访问的接口中,配置 @HystrixCommand,并配置fallbackMethod的方法;
- 所配置的fallbackMethod方法,需要定义。
@Component
public class StoreIntegration {
@HystrixCommand(fallbackMethod = "defaultStores")
public Object getStores(Map<String, Object> parameters) {
//do stuff that might fail
}
public String defaultStores() {
return "提醒用户的消息";
}
}