服务熔断有三种状态,分别是关闭,开启,半开启,如图
开启服务熔断:
1 添加依赖
<!-- Hystrix --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
2 主启动类添加 @EnableCircuitBreaker 注解
3 在调用的业务处理添加注解
@HystrixCommand( //服务出错,或者超时后的服务降级方法 fallbackMethod = "error",commandProperties = { //开启服务熔断 @HystrixProperty(name = "circuitBreaker.enabled",value = "true"), //请求次数 @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold",value = "10"), //时间范围 @HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds",value = "10000"), //失败率 @HystrixProperty(name = HystrixPropertiesManager.CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE,value = "20") })
//正常流程
public String xxx(){
}
//服务熔断的方法,名字要与 @HystrixCommand的fallbackMethod指定的名字相同,并且,该方法必须与正常流程的参数相同
public String error(){
}