服务断路器_Resilience4j线程池隔离实现

服务断路器_Resilience4j线程池隔离实现_第1张图片

线程池隔离配置修改YML文件

resilience4j:
  thread-pool-bulkhead:  
   instances:
    backendA:
     # 最大线程池大小
     maxThreadPoolSize: 4
    # 核心线程池大小
     coreThreadPoolSize: 2
    #  队列容量
     queueCapacity: 2

编写controller

  /**
   * 测试线程池服务隔离
   * @return
   */
  @Bulkhead(name = "backendA",type = Bulkhead.Type.THREADPOOL)
  @GetMapping("/futrue")
  public CompletableFuture future(){
    log.info("********** 进入方法 *******");
    try {
      TimeUnit.SECONDS.sleep(5);
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
    log.info("********** 离开方法 *******");
    return CompletableFuture.supplyAsync(() -> "线程池隔离信息......");
   }

测试

配置文件设置核心线程2个最大4个服务会一次处理4个请求

服务断路器_Resilience4j线程池隔离实现_第2张图片

你可能感兴趣的:(java,服务器,前端)