特定のバルクヘッド構成

デフォルトの「バルクヘッド」または "ThreadPoolBulkhead" 構成を証明するのと同様に、Customizer Bean を作成して、これに Resilience4jBulkheadProvider を渡すことができます。

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

作成されたバルクヘッドを構成することに加えて、バルクヘッドとスレッドプールバルクヘッドをカスタマイズしてから、作成してから呼び出し元に戻すこともできます。これを行うには、addBulkheadCustomizer および addThreadPoolBulkheadCustomizer メソッドを使用できます。

バルクヘッドの例

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

スレッドプールのバルクヘッドの例

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