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