跳到主要内容

Bulkhead 模式支持

DeepSeek V3 中英对照 Bulkhead pattern supporting

如果 resilience4j-bulkhead 在类路径中,Spring Cloud CircuitBreaker 将会使用 Resilience4j Bulkhead 包装所有方法。你可以通过将 spring.cloud.circuitbreaker.bulkhead.resilience4j.enabled 设置为 false 来禁用 Resilience4j Bulkhead。

Spring Cloud CircuitBreaker Resilience4j 提供了两种舱壁模式的实现:

  • 一个使用信号量的 SemaphoreBulkhead

  • 一个使用有界队列和固定线程池的 FixedThreadPoolBulkhead

默认情况下,Spring Cloud CircuitBreaker Resilience4j 使用 FixedThreadPoolBulkhead。要修改默认行为以使用 SemaphoreBulkhead,请将属性 spring.cloud.circuitbreaker.resilience4j.enableSemaphoreDefaultBulkhead 设置为 true

有关 Bulkhead 模式实现的更多信息,请参阅 Resilience4j Bulkhead

Customizer<Resilience4jBulkheadProvider> 可用于提供默认的 BulkheadThreadPoolBulkhead 配置。

@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()
);
}
java