目录
- Hystrix本系列博文
- 静态降级(返回默认值)
- 自定义降级
- 网络缓存降级
- 主备降级
- 声明
Hystrix本系列博文
以下为博主写Hystrix系列的文章列表,顺便骗个赞,觉得写的还可以的,不要吝啬你的赞哟
点击查看 Hystrix入门
点击查看 Hystrix命令执行
点击查看 Hystrix处理异常机制(降级方法)
点击查看 Hystrix命令名称、分组、线程池
点击查看 Hystrix命令名称、Hystrix请求处理
点击查看 Hystrix请求处理
点击查看 Hystrix常用场景--失败
静态降级(返回默认值)
可以在代码中静态的返回默认值进行降级, 这不会导致功能或服务以“静默失败”的方式被删除,而是导致默认行为发生。
例如,如果一个命令基于用户凭据返回true/false,如果命令执行失败,它可以默认为true:
@Override
protected Boolean getFallback() {
return true;
}
HystrixObservableCommand
等价
对于 HystrixObservableCommand
的静默失败解决方案是调用重写 resumeWithFallback
方法,示例如下:
@Override
protected Observable<Boolean> resumeWithFallback() {
return Observable.just( true );
}
自定义降级
当命令返回的是一个包含多个字段的复合对象时,通常会使用自定义降级,其中一些字段可以由其他请求状态确定,而其他字段设置为默认值。
适合使用自定义降级的例子有:
- cookies
- 请求参数和请求头
- 之前的服务请求在当前失败之前的响应
降级时会静态的从请求范围检索出存根, 但是如果需要的话,比如下面这个例子演示了它如何处理countryCodeFromGeoLookup字段,通常建议在命令实例化时注入它们。
public class HystrixStubbedFallback extends HystrixCommand<HystrixStubbedFallback.UserAccount> {
private final int customerId;
private final String countryCodeFromGeoLookup;
/**
* @param customerId 用于检索UserAccount
* @param countryCodeFromGeoLookup
*