**
服务熔断
**一个服务在一段时间内运行连续失败超过了这段时间内运行次数的规定值,该服务暂时关闭,即使之后运行成功,也需要连续一段时间的运行成功才恢复服务,保证系统的健壮。
配置
首先就是main方法中调用注解@EnableCircuitBreaker
@SpringBootApplication
@EnableEurekaClient
@EnableCircuitBreaker
public class PaymentHystrixMain8001
第二就是在需要调用的方法头调用@HystrixCommand,在commandProperties 配置具体的参数
@HystrixCommand(fallbackMethod="paymentCircuitBreakFallback",commandProperties = {
@HystrixProperty(name="circuitBreaker.enabled",value = "true"),
@HystrixProperty(name="circuitBreaker.requestVolumeThreshold",value = "10"),
@HystrixProperty(name="circuitBreaker.sleepWindowInMilliseconds",value = "10000"),
@HystrixProperty(name="circuitBreaker.errorThresholdPercentage",value = "60")
})
public String paymentCircuitBreak(@PathVariable(value = "id") Integer id)
circuitBreaker.enabled为是否开启断路器,
circuitBreaker.requestVolumeThreshold为熔断判断逻辑在设定的时间窗口内开始工作的最小请求数。
circuitBreaker.sleepWindowInMilliseconds则断路器开启逻辑在设定的时间窗口内。
circuitBreaker.errorThresholdPercentage是达到错误次数占总次数的百分比开启断路器
可以通过Ctrl+N+Shift打开搜索,搜索打开HystrixCommandProperties可以看到可以配置的参数和默认值。注意复制粘贴时区分大小写。吃了2个小时的亏。
这样对应的方法就可以使用服务熔断了