|
对于最新稳定版本,请使用 Spring-Cloud-CircuitBreaker 5.0.0! |
隔板模式支撑
如果resilience4j-bulkhead在类路径上,Spring Cloud CircuitBreaker 会用 Resilience4j Bulkhead 包裹所有方法。
你可以通过设置禁用Resilience4j隔板spring.cloud.circuitbreaker.bulkhead.resilience4j.enabled自false.
Spring Cloud CircuitBreaker Resilience4j 提供了两种隔板模式实现:
-
一个
信号臂船头使用臂量 -
一个
固定线程池块头它使用有界队列和固定线程池。
默认情况下,Spring Cloud CircuitBreaker Resilience4j 使用固定线程池块头.修改默认行为以使用信号臂船头设置属性spring.cloud.circuitbreaker.resilience4j.enableSemaphoreDefaultBulkhead自true.
关于实施的更多信息 隔板模式的部分见韧性4j隔板。
这Customizer<Resilience4jBulkheadProvider>可以用来提供默认值舱 壁和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()
);
}