弹性4j不忽略异常



JobServiceImpl.java:

@CircuitBreaker(name = "jobsApiServiceGetAllJobs", fallbackMethod = "getAllJobsFallback")
public ResponseEntity<JobsResponse> getAllJobs() {
...
throw new ApiException();
}
public ResponseEntity<JobsResponse> getAllJobsFallback(Throwable throwable) {
log.error("Fallback method called");
}

application.properties:

resilience4j.circuitbreaker.instances.jobsApiServiceGetAllJobs.ignoreExceptions=ccp.shared.platform.exception.ApiException,ccp.shared.platform.exception.BadRequestApiException

每当抛出ccp.shared.platform.exception.ApiException时,即使我已将其添加到application.properties文件的ignoreExceptions列表中,也会调用回退方法。我希望它在抛出ApiException时不触发回退方法。我在堆栈溢出问题上尝试过类似的问题,但这些问题对我不起作用。我做错了什么吗?

看起来属性是在文档中定义的,但实际上它不起作用。存在对此的拉取请求->CircuitBreakerConfigurationProperties没有ignoreException属性。

同时,您可以使用常见的Spring+java配置来实现这一点:

@Bean
CircuitBreaker reportingApiCircuitBreaker(CircuitBreakerRegistry registry) {
CircuitBreakerConfig config = CircuitBreakerConfig.custom()
.ignoreExceptions(ApiException.class, BadRequestApiException.class)
.build();
return registry.circuitBreaker("yourCircuitBreakername", config);
}

请尝试这种方式

resilience4j.circuitbreaker.instances.jobsApiServiceGetAllJobs.ignoreExceptions[0]=ccp.shared.platform.exception.ApiException
resilience4j.circuitbreaker.instances.jobsApiServiceGetAllJobs.ignoreExceptions[1]=ccp.shared.platform.exception.BadRequestApiException

相关内容

  • 没有找到相关文章

最新更新