@SpringCloudApplication 相当于:@EnableCircuitBreaker、@EnableDiscoveryClilent、@SpringBootApplication

熔断器状态的相关配置

@HystrixProperty相关配置在抽象类:package com.netflix.hystrix.HystrixCommandProperties 中

熔断器开启或者关闭的条件:

1、 当满足一定的阀值的时候(默认10秒内超过20个请求次数)

2、 当失败率达到一定的时候(默认10秒内超过50%的请求失败)

3、 到达以上阀值,断路器将会开启

4、 当开启的时候,所有请求都不会进行转发

5、 一段时间之后(默认是5秒),这个时候断路器是半开状态,会让其中一个请求进行转发。如果成功,断路器会关闭,若失败,继续开启。重复4和5。

// 开启服务降级
@HystrixCommand(
        // 熔断器状态相关配置
        commandProperties = {
                // 当请求次数达到10次时才能开启熔断
                @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold",value = "10"),
                // 状态变换的时间,由开启 --> 半开
                @HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds",value = "20000"),
                // 失败请求/所有请求=60% --> 开启熔断器
                @HystrixProperty(name = "circuitBreaker.errorThresholdPercentage",value = "60")
        }
)

YOLO