vbv*_*bvT 5 spring circuit-breaker spring-boot resilience4j
我正在使用 Resilience4j 断路器版本:'1.4.0 和 Spring boot 版本 2.0.6,我的问题是 - 回退方法不起作用。该调用不会转到后备方法。下面是我的代码:
@Override
@CircuitBreaker(name="mainService",fallbackMethod = "callFallback")
public JSONObject callService(JSONObject rawRequest) throws TimeoutException {
...
throw new TimeoutException("Time occured while calling
service");
...
}
Run Code Online (Sandbox Code Playgroud)
-- 和后备方法:
private JSONObject callFallback(JSONObject rawRequest,Throwable t){
System.out.println("Inside fallback method callNsFallback,
cause"+t.toString());
logger.info("Inside fallback method callFallback,
cause - {}",t.toString());
return rawRequest;
}
Run Code Online (Sandbox Code Playgroud)
--application.yml中的配置
resilience4j:
circuitbreaker:
configs:
default:
registerHealthIndicator: true
ringBufferSizeInClosedState: 5
ringBufferSizeInHalfOpenState: 3
slidingWindowSize: 10
minimumNumberOfCalls: 5
permittedNumberOfCallsInHalfOpenState: 3
automaticTransitionFromOpenToHalfOpenEnabled: true
waitDurationInOpenState: 1s
failureRateThreshold: 50
eventConsumerBufferSize: 10
recordExceptions:
- java.util.concurrent.TimeoutException
instances:
mainService:
baseConfig: default
Run Code Online (Sandbox Code Playgroud)
小智 2
可能的原因可能是您缺少一些必需的依赖项。在这里,我分享对我有用的依赖项和 yaml 配置。
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.github.resilience4j</groupId>
<artifactId>resilience4j-spring-boot2</artifactId>
<version>1.7.1</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
应用程序.yml
resilience4j:
circuitbreaker:
instances:
menu-service:
registerHealthIndicator: true
eventConsumerBufferSize: 10
automaticTransitionFromOpenToHalfOpenEnabled: true
failureRateThreshold: 50
minimumNumberOfCalls: 5
permittedNumberOfCallsInHalfOpenState: 1
slidingWindowSize: 10
waitDurationInOpenState: 2s
slidingWindowType: COUNT_BASED
management:
health:
circuitbreakers:
enabled: true
endpoints:
web:
exposure:
include: health
endpoint:
health:
show-details: always
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3844 次 |
| 最近记录: |