doc: 阅读CircuitBreaker文档
This commit is contained in:
@@ -276,3 +276,37 @@ CircuitBreakerRegistry circuitBreakerRegistry =
|
|||||||
- 如果recordFailurePredicate不为空,根据`recordFailurePredicate`判断是否该异常应当被视为failure,如果返回为true,将其视为failure,否则继续
|
- 如果recordFailurePredicate不为空,根据`recordFailurePredicate`判断是否该异常应当被视为failure,如果返回为true,将其视为failure,否则继续
|
||||||
- 如果上述都不满足,那么将其视为success
|
- 如果上述都不满足,那么将其视为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