6.RxJava+Hystrix 小例子

前言


Hystrix是什么
在复杂的分布式系统中,可能有成百上千个依赖服务,这些服务由于某种故障,比如机房的不可靠性、网络服务商的不可靠性等因素,导致某个服务不可用,如果系统不隔离该不可用的服务,可能会导致整个系统不可用
对Hystrix不做其他说明,看例子。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
new HystrixCommand<String>(HystrixCommandGroupKey.Factory.asKey("test"), 1000) {
@Override
protected String run() throws Exception {
//业务代码
return "1";
}
@Override
protected String getFallback() {
//错误处理
return null;
}
}.observe()
.doOnNext(str -> System.out.println(str))
.subscribe();

maven


1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>io.reactivex</groupId>
<artifactId>rxjava</artifactId>
<version>1.0.10</version>
</dependency>
<dependency>
<groupId>com.netflix.hystrix</groupId>
<artifactId>hystrix-core</artifactId>
<version>1.4.10</version>
</dependency>