跳到主要内容

特定隔离配置

DeepSeek V3 中英对照 Specific Bulkhead Configuration

类似于证明默认的 'Bulkhead' 或 'ThreadPoolBulkhead' 配置,你可以创建一个 Customizer bean,该 bean 会接收一个 Resilience4jBulkheadProvider

@Bean
public Customizer<Resilience4jBulkheadProvider> slowBulkheadProviderCustomizer() {
return provider -> provider.configure(builder -> builder
.bulkheadConfig(BulkheadConfig.custom().maxConcurrentCalls(1).build())
.threadPoolBulkheadConfig(ThreadPoolBulkheadConfig.ofDefaults()), "slowBulkhead");
}
java

除了配置创建的 Bulkhead 之外,您还可以在它们被创建之后但在返回给调用者之前自定义 bulkhead 和 thread pool bulkhead。为此,您可以使用 addBulkheadCustomizeraddThreadPoolBulkheadCustomizer 方法。

隔离舱示例

@Bean
public Customizer<Resilience4jBulkheadProvider> customizer() {
return provider -> provider.addBulkheadCustomizer(bulkhead -> bulkhead.getEventPublisher()
.onCallRejected(slowRejectedConsumer)
.onCallFinished(slowFinishedConsumer), "slowBulkhead");
}
java

线程池隔离示例

@Bean
public Customizer<Resilience4jBulkheadProvider> slowThreadPoolBulkheadCustomizer() {
return provider -> provider.addThreadPoolBulkheadCustomizer(threadPoolBulkhead -> threadPoolBulkhead.getEventPublisher()
.onCallRejected(slowThreadPoolRejectedConsumer)
.onCallFinished(slowThreadPoolFinishedConsumer), "slowThreadPoolBulkhead");
}
java