Files
rikako-note/spring/Spring Cloud/Spring Cloud Circuit Breaker.md

23 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Spring Cloud Circuit Breaker
Spring Cloud Circuit Breaker项目包含Resilience4J实现和Spring Retry实现。
## 配置Resilience4J Circuit Breakers
关于resilience4J Circuit Breakers实现拥有如下两个启动器一个用于响应式项目另一个用于非响应式项目
- `org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j`
- `org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j`
### 关闭自动装配
可以通过设置`spring.cloud.circuitbreaker.resilience4j.enabled`为false来关闭Resilience4J的自动装配
### 默认配置
如果想要为所有的circuit breaker提供默认配置可以创建一个`Customizer` bean对象该bean对象接收一个`Resilience4JCircuitBreakerFactory`类型参数。configureDefault方法可以用于提供默认的配置
```java
@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());
}
```
### 自定义ExecutorService
如果想要自定义执行circuit breaker的`ExecutorService`可以通过Resilience4JCircuitBreakerFactor来指定。