隔板模式支持
如果resilience4j-bulkhead
在 Classpath 上,Spring Cloud CircuitBreaker 将使用Resilience4j Bulkhead包装所有方法。
您可以通过设置spring.cloud.circuitbreaker.bulkhead.resilience4j.enabled
自false
.
Spring Cloud CircuitBreaker Resilience4j 提供了两种隔板模式的实现:
-
一个
SemaphoreBulkhead
它使用信号量 -
一个
FixedThreadPoolBulkhead
,它使用有界队列和固定线程池。
默认情况下,Spring Cloud CircuitBreaker Resilience4j 使用FixedThreadPoolBulkhead
.要修改要使用的默认行为SemaphoreBulkhead
设置spring.cloud.circuitbreaker.resilience4j.enableSemaphoreDefaultBulkhead
自true
.
有关实施的更多信息 的 Bulkhead 模式请参阅 Resilience4j Bulkhead。
这Customizer<Resilience4jBulkheadProvider>
可用于提供默认的Bulkhead
和ThreadPoolBulkhead
配置。
@Bean
public Customizer<Resilience4jBulkheadProvider> defaultBulkheadCustomizer() {
return provider -> provider.configureDefault(id -> new Resilience4jBulkheadConfigurationBuilder()
.bulkheadConfig(BulkheadConfig.custom().maxConcurrentCalls(4).build())
.threadPoolBulkheadConfig(ThreadPoolBulkheadConfig.custom().coreThreadPoolSize(1).maxThreadPoolSize(1).build())
.build()
);
}