Spring cloud 如何创建名为@FeignClient的线程池
我发现resilience4总是为每个外部方法创建一个线程池。在我的项目中有数百种虚假的方法。这样就有成千上万的隔板螺纹。Spring cloud 如何创建名为@FeignClient的线程池,spring-cloud,spring-cloud-feign,resilience4j,Spring Cloud,Spring Cloud Feign,Resilience4j,我发现resilience4总是为每个外部方法创建一个线程池。在我的项目中有数百种虚假的方法。这样就有成千上万的隔板螺纹。 如何让它以@FeignClient的名称创建线程池? 我在下面的org.springframework.cloud.circuitbreaker.resilience4j.Resilience4jBulkheadProvider中找到了源代码: // The id like this: FooStub#queryFooList(QueryFooListParam)-
如何让它以@FeignClient的名称创建线程池?
我在下面的
org.springframework.cloud.circuitbreaker.resilience4j.Resilience4jBulkheadProvider
中找到了源代码:
// The id like this: FooStub#queryFooList(QueryFooListParam)-x
// I would it like this: xxx-service. It is the name property of @FeignClient
private <T> Supplier<CompletionStage<T>> decorateBulkhead(final String id, final Supplier<T> supplier) {
Resilience4jBulkheadConfigurationBuilder.BulkheadConfiguration configuration = configurations
.computeIfAbsent(id, defaultConfiguration);
if (bulkheadRegistry.find(id).isPresent() && !threadPoolBulkheadRegistry.find(id).isPresent()) {
Bulkhead bulkhead = bulkheadRegistry.bulkhead(id, configuration.getBulkheadConfig());
CompletableFuture<T> asyncCall = CompletableFuture.supplyAsync(supplier);
return Bulkhead.decorateCompletionStage(bulkhead, () -> asyncCall);
}
else {
ThreadPoolBulkhead threadPoolBulkhead = threadPoolBulkheadRegistry.bulkhead(id,
configuration.getThreadPoolBulkheadConfig());
return threadPoolBulkhead.decorateSupplier(supplier);
}
}
//id如下:FooStub#queryFooList(QueryFooListParam)-x
//我想要这个:xxx服务。它是@FeignClient的name属性
私人供应商decorateBulkhead(最终字符串id,最终供应商){
弹性4JBULKHEADConfigurationBuilder.BulkheadConfiguration配置=配置
.ComputeFabSent(id,默认配置);
if(bulkheadRegistry.find(id).isPresent()&&!threadPoolBulkheadRegistry.find(id).isPresent()){
舱壁舱壁=bulkheadRegistry.shumbird(id,configuration.getBulkheadConfig());
CompletableFuture asyncCall=CompletableFuture.SupplySync(供应商);
返回舱壁。装饰完成阶段(舱壁,()->异步调用);
}
否则{
ThreadPool隔板ThreadPool隔板=threadPoolBulkheadRegistry.隔板(id,
getThreadPoolBulkheadConfig());
退货。装饰供应商(供应商);
}
}