对于最新的稳定版本,请使用 Spring-Cloud-CircuitBreaker 3.3.0spring-doc.cadn.net.cn

隔板模式支撑

如果resilience4j-bulkhead在类路径上,Spring Cloud CircuitBreaker 将用 Resilience4j bulkhead 包装所有方法。 您可以通过设置spring.cloud.circuitbreaker.bulkhead.resilience4j.enabledfalse.spring-doc.cadn.net.cn

Spring Cloud CircuitBreaker Resilience4j 提供了两种隔板模式的实现:spring-doc.cadn.net.cn

默认情况下,Spring Cloud CircuitBreaker Resilience4j 使用FixedThreadPoolBulkhead.修改要使用的默认行为SemaphoreBulkhead设置属性spring.cloud.circuitbreaker.resilience4j.enableSemaphoreDefaultBulkheadtrue.spring-doc.cadn.net.cn

有关实施的更多信息 舱壁模式参见 Resilience4j 舱壁spring-doc.cadn.net.cn

Customizer<Resilience4jBulkheadProvider>可用于提供默认BulkheadThreadPoolBulkhead配置。spring-doc.cadn.net.cn

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