如果在类路径上,Spring Cloud CircuitBreaker 将用 Resilience4j Bulkhead 包装所有方法。 您可以通过设置为 来禁用 Resilience4j 隔板。resilience4j-bulkheadspring.cloud.circuitbreaker.bulkhead.resilience4j.enabledfalse

Spring Cloud CircuitBreaker Resilience4j 提供了两种隔板模式的实现:

  • a 使用信号量SemaphoreBulkhead

  • a 使用有界队列和固定线程池。FixedThreadPoolBulkhead

默认情况下,Spring Cloud CircuitBreaker Resilience4j 使用 .若要修改要使用的默认行为,请将属性设置为 。FixedThreadPoolBulkheadSemaphoreBulkheadspring.cloud.circuitbreaker.resilience4j.enableSemaphoreDefaultBulkheadtrue

有关实施的更多信息 的隔板模式,请参阅 Resilience4j 隔板

可用于提供默认值和配置。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()
);
}