POM引入依赖
<dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-bulkhead</artifactId><version>1.7.0</version>
</dependency>
信号量隔离修改YML文件
resilience4j:#信号量隔离bulkhead:instances:backendA:# 隔离允许并发线程执行的最大数量maxConcurrentCalls: 5# 当达到并发调用数量时,新的线程的阻塞时间maxWaitDuration: 20ms
编写controller
/*** 测试信号量隔离* @return*/@Bulkhead(name = "backendA",type = Bulkhead.Type.SEMAPHORE)@GetMapping("bulkhead")public String bulkhead() throws InterruptedException {log.info("************** 进入方法 *******");TimeUnit.SECONDS.sleep(10);String index = paymentOpenFeignService.index();log.info("************** 离开方法 *******");return index;}
测试
配置隔离并发线程最大数量为5