doc: 阅读CircuitBreaker文档
This commit is contained in:
@@ -276,3 +276,37 @@ CircuitBreakerRegistry circuitBreakerRegistry =
|
||||
- 如果recordFailurePredicate不为空,根据`recordFailurePredicate`判断是否该异常应当被视为failure,如果返回为true,将其视为failure,否则继续
|
||||
- 如果上述都不满足,那么将其视为success
|
||||
|
||||
创建自定义`CircuitBreakerConfig`的示例如下所示:
|
||||
```java
|
||||
// Create a custom configuration for a CircuitBreaker
|
||||
CircuitBreakerConfig circuitBreakerConfig = CircuitBreakerConfig.custom()
|
||||
.failureRateThreshold(50)
|
||||
.slowCallRateThreshold(50)
|
||||
.waitDurationInOpenState(Duration.ofMillis(1000))
|
||||
.slowCallDurationThreshold(Duration.ofSeconds(2))
|
||||
.permittedNumberOfCallsInHalfOpenState(3)
|
||||
.minimumNumberOfCalls(10)
|
||||
.slidingWindowType(SlidingWindowType.TIME_BASED)
|
||||
.slidingWindowSize(5)
|
||||
.recordException(e -> INTERNAL_SERVER_ERROR
|
||||
.equals(getResponse().getStatus()))
|
||||
.recordExceptions(IOException.class, TimeoutException.class)
|
||||
.ignoreExceptions(BusinessException.class, OtherBusinessException.class)
|
||||
.build();
|
||||
|
||||
// Create a CircuitBreakerRegistry with a custom global configuration
|
||||
CircuitBreakerRegistry circuitBreakerRegistry =
|
||||
CircuitBreakerRegistry.of(circuitBreakerConfig);
|
||||
|
||||
// Get or create a CircuitBreaker from the CircuitBreakerRegistry
|
||||
// with the global default configuration
|
||||
CircuitBreaker circuitBreakerWithDefaultConfig =
|
||||
circuitBreakerRegistry.circuitBreaker("name1");
|
||||
|
||||
// Get or create a CircuitBreaker from the CircuitBreakerRegistry
|
||||
// with a custom configuration
|
||||
CircuitBreaker circuitBreakerWithCustomConfig = circuitBreakerRegistry
|
||||
.circuitBreaker("name2", circuitBreakerConfig);
|
||||
```
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user