服务提供者【test-provider8001】
Openfeign远程调用服务提供者搭建
文章地址http://t.csdnimg.cn/06iz8
相关接口
测试远程调用:http://localhost:8001/payment/index
服务消费者【test-consumer-resilience4j8004】
Openfeign远程调用消费者搭建
文章地址http://t.csdnimg.cn/06iz8
依赖
<!-- resilience4j隔离依赖 -->
<dependency>
<groupId>io.github.resilience4j</groupId>
<artifactId>resilience4j-bulkhead</artifactId>
<version>1.7.0</version>
</dependency>
<!-- resilience4j -->
<dependency>
<groupId>io.github.resilience4j</groupId>
<artifactId>resilience4j-spring-cloud2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency>
application.yml
resilience4j:
# 限流
ratelimiter:
instances:
# 实例名称:自己定义的名称,对应@RateLimiter的name
backendA:
# 限流周期时长【默认:500纳秒】
limitRefreshPeriod: 5s
# 周期内允许通过的请求数量【默认:50】,5秒可通过2个请求
limitForPeriod: 2
OrderController【控制层】
/**
* 测试限流
*
* @return
*/
@GetMapping("/limiter")
@RateLimiter(name = "backendA")
public CompletableFuture<String> RateLimiter() {
log.info("********* 进入方法 ******");
//异步操作
CompletableFuture<String> completableFuture = CompletableFuture
.supplyAsync((Supplier<String>) () -> (paymentFeignService.paymentIndex()));
log.info("********* 离开方法 ******");
return completableFuture;
}
相关接口
测试限流:http://localhost:8004/order/limiter
jmeter测试思路
配置:5秒可通过2个请求
线程数 - 5