一、背景描述
由于Hystrix官方已经停止更新,Spring 官网推荐使用Resilience4j作为服务的熔断保护中间件,可见Resilience4j的重要性。
为了探究Resilience4j实现服务熔断功能, 我们选用了 consul 作为注册中心,启动了一个服务端(waiter),验证其服务端限流、并发控制熔断。我们在极端的时间内访问较多次数指定接口,观察接口是否会进行熔断处理。 consul 启动及运行状态监控,不在这里描述, 我们默认 consul 已经正常运行。
本地安装运行consul 参考:https://jingyan.baidu.com/article/ca41422f732f961eaf99ed5f.html
在RateLimiter中有两种使用方式:基于注解,或熔断对象注入两种方式,下面会分别进行演示。
二、代码演示
2.1 pom主要依赖
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId