每当我们调用远程服务时,我们都会在我们的代码库中使用来自 Resilience4j 库的 Circuitbreaker。fallbackMethod 实现中应该包含什么?远程服务不可用时的一般做法是什么?如果远程服务在一分钟或几秒钟内不可用,我们会同步重试,异步重试的最佳做法是什么 - 假设远程服务在 10 分钟内不可用。
- 调用服务应该休眠,
- 调用服务从 fallbackMethod 返回错误响应
您能否提供一些输入,一些有用的参考。我尝试过搜索,但我得到的只是一些没有帮助的简单示例。
代码片段看起来像这样:
@CircuitBreaker(name = MOC_RESILIENCE_SERVICE, fallbackMethod = "helloFallbakMethod")
@Retry(name = MOC_RESILIENCE_SERVICE)
public ResponseEntity<String> callRemoteApi(String id, String url, HttpEntity<?> entity)throws RestClientException {
log.info("[ConsumerAPI] [callRemoteApi] id : {} Remote-Url : {}", id, url);
return <call to remoteService()>;
}