什么是熔断? 熔断有哪几种状态 断路器的工作原理、如何开启熔断?

什么是熔断? 熔断有哪几种状态 断路器的工作原理、如何开启熔断?

什么是熔断? 熔断有哪几种状态 断路器的工作原理

一、什么是熔断

熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。

在SpringCloud框架里熔断机制通过Hystrix实现,Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内调用20次,如果失败,就会启动熔断机制。熔断机制的注解是@HystrixCommand。

这种牺牲局部,保全整体的措施就叫做熔断

二、熔断有哪几种状态

熔断有三种状态:

1.Closed:关闭状态,所有请求都正常访问。

2.Open:打开状态,所有请求都会被降级。Hystix会对请求情况计数,当一定时间内失败请求百分比达到阈值,则触发熔断,断路器会完全打开。默认失败比例的阈值是50%,请求次数最少不低于20次。

3.Half Open:半开状态,open状态不是永久的,打开后会进入休眠时间(默认是5S)。随后断路器会自动进入半开状态。此时会释放部分请求通过,若这些请求都是健康的,则会完全关闭断路器,否则继续保持打开,再次进行休眠计时

实际上服务熔断 和 服务降级 没有任何关系,就像 java 和 javaScript

服务熔断,有点自我恢复的味道

服务熔断原理(断路器的原理):

统计用户在指定的时间范围(默认10s)之内的请求总数达到指定的数量之后,如果不健康的请求(超时、异常)占总请求数量的百分比(50%)

达到了指定的阈值之后,就会触发熔断。触发熔断,断路器就会打开(open),此时所有请求都不能通过。在5s之后,断路器

会恢复到半开状态(half open),会允许少量请求通过,如果这些请求都是健康的,那么断路器会回到关闭状态(close).如果

这些请求还是失败的请求,断路器还是恢复到打开的状态(open).

熔断器的使用

首先在启动类上开启服务熔断 @EnableCircuitBreaker //开启服务熔断

断路器的使用:

1.在指定请求方法上,开启熔断

@HystrixCommand(fallbackMethod = "handleCircuitBreaker",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"), // 失败率达到多少后跳闸

//整体意思:10秒内 10次请求,有6次失败,就跳闸

})

public String enableCircuitBreaker(Integer id){

if(id < 0){

throw new RuntimeException();

}

String uuid = UUID.randomUUID().toString();

return "返回的uuid是:" + uuid;

}

2.使用XML的方式进行熔断的配置

hystrix:

command:

default:

circuitBreaker:

enabled: true

requestVolumeThreshold: 10

sleepWindowInMilliseconds: 10000

errorThresholdPercentage: 60

服务限流

相关推荐

04.修行和要点与现场导引
365账号怎么注册

04.修行和要点与现场导引

📅 07-22 👁️ 7642
叫板台系!航嘉X7-1200W金牌电源完全评测
365账号怎么注册

叫板台系!航嘉X7-1200W金牌电源完全评测

📅 08-31 👁️ 3979
群里换群主的正确方式
线上365bet开户

群里换群主的正确方式

📅 07-01 👁️ 1609