java - Hystrix 回退方法最佳实践
问题描述
好的,所以我在这个主题上找不到任何有用的材料,我发现的大部分文章都有一个用 @HystrixCommand 注释的方法并定义了一个备用方法。
我发现的另一个解决方案是使用 @DefaultProperties(defaultFallback = "fallbackMethod") ,但问题是这些方法需要具有兼容的返回类型。
不幸的是,在我的服务中,我有许多具有完全不同签名的方法,而且我需要掌握可投掷的东西(在文档中提到你不能有任何参数用于默认的后备方法)。这些方法看起来像这样:
@Service
@RequiredArgsConstructor
public class MyService {
private final FeignClient feignClient;
@Override
public String methodA(final CustomObjectA o, final String entity) {
...
}
@Override
public String methodB(final String collection, final Map<String, Object> requestBody) {
...
}
@Override
public String methodC(final String collection, final String id, final Map<String, Object> requestBody) {
...
}
}
而且ofc我在服务中有超过3种方法def ...
我真正想避免的事情是制作 20 种 hystrix 默认后备方法。
有没有一种方法可以为所有方法定义标准回退,无论它们有什么签名,还是我坚持为每个方法定义一个回退方法?
提前致谢!!
解决方案
您将不得不为每种方法实现一个回退。
然而,使用FallbackFactory
可能会使这更容易,并允许每个方法调用一个可重用的方法。
如果每种方法都相同,也许您真的不想要 hystrix 后备。所有的 try catch 都可能解决同样的问题。
推荐阅读
- python - 反正有没有让脚本不在 CMD 中运行?
- angular - NativeScript & Angular - 如何清除路由器历史记录?
- activerecord - 如何在 hasMany 关系中添加很少的条件?
- javascript - 如果 .next 与当前元素之后的另一个元素不匹配,则插入文本
- java - 如何返回点之间和括号之前的字符串
- bash - 使用 bash shell 从 json 字符串中的文件夹映射文件名
- android - iOS/Android - 通过 SDK 禁用移动数据(蜂窝数据)
- c# - EF Core - 等效于 IQueryable 搜索的表达式树
- c# - EF 6 保存多级子实体和多个父级
- rest - REST org.xml.sax.SAXParseException;行号:1;列号:1;文件过早结束