|
请使用 Spring-Cloud-CircuitBreaker 5.0.1 获取最新稳定版本! |
熔断模式支持
如果 resilience4j-bulkhead 在类路径中,Spring Cloud CircuitBreaker 将为所有方法添加 Resilience4j 限流器(Bulkhead)封装。您可以通过将 spring.cloud.circuitbreaker.bulkhead.resilience4j.enabled 设置为 false 来禁用 Resilience4j 限流器(Bulkhead)。
Spring Cloud CircuitBreaker Resilience4j 提供了熔断模式的两种实现:
-
a
SemaphoreBulkheadwhich uses Semaphores -
a
FixedThreadPoolBulkheadwhich uses a bounded queue and a fixed thread pool.
默认情况下,Spring Cloud CircuitBreaker Resilience4j 使用 FixedThreadPoolBulkhead。若要将默认行为修改为使用 SemaphoreBulkhead,请将属性 spring.cloud.circuitbreaker.resilience4j.enableSemaphoreDefaultBulkhead 设置为 true。
有关批量隔离模式实现的更多信息,请参阅 Resilience4j 批量隔离。
代码 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()
);
}