デフォルト構成

すべてのサーキットブレーカーにデフォルト構成を提供するには、Resilience4JCircuitBreakerFactory または ReactiveResilience4JCircuitBreakerFactory が渡される Customizer Bean を作成します。configureDefault メソッドを使用して、デフォルト構成を提供できます。

@Bean
public Customizer<Resilience4JCircuitBreakerFactory> defaultCustomizer() {
	return factory -> factory.configureDefault(id -> new Resilience4JConfigBuilder(id)
			.timeLimiterConfig(TimeLimiterConfig.custom().timeoutDuration(Duration.ofSeconds(4)).build())
			.circuitBreakerConfig(CircuitBreakerConfig.ofDefaults())
			.build());
}

リアクティブの例

@Bean
public Customizer<ReactiveResilience4JCircuitBreakerFactory> defaultCustomizer() {
	return factory -> factory.configureDefault(id -> new Resilience4JConfigBuilder(id)
			.circuitBreakerConfig(CircuitBreakerConfig.ofDefaults())
			.timeLimiterConfig(TimeLimiterConfig.custom().timeoutDuration(Duration.ofSeconds(4)).build()).build());
}

ExecutorService のカスタマイズ

サーキットブレーカーを実行する ExecutorService を設定したい場合は、Resilience4JCircuitBreakerFactory を使用して設定できます。

たとえば、コンテキスト対応の ExecutorService を使用する場合は、次のようにします。

@Bean
public Customizer<ReactiveResilience4JCircuitBreakerFactory> defaultCustomizer() {
	return factory -> {
		ContextAwareScheduledThreadPoolExecutor executor = ContextAwareScheduledThreadPoolExecutor.newScheduledThreadPool().corePoolSize(5)
			.build();
		factory.configureExecutorService(executor);
	};
}