首先讲下,如何结合maven和IDEA使用Hystrix。
引入依赖
<!--hystrix-->
<dependency>
<groupId>com.netflix.hystrix</groupId>
<artifactId>hystrix-core</artifactId>
<version>1.5.10</version>
</dependency>
<!--hystrix-->项目中原本有个HystrixService业务类。我们首先,将这个业务类的实现方法转交给HystrixService的实现类,此实现类实现了Hystix的某些方法。代码如下:
/**
@author tengqingya
@create 2017-03-24 17:53
*/
@Service
public class HystrixService {
public String sayHello(){
return new HystrixServiceImpl().execute();
}
}
原本的 sayHello中的业务代码用new HystrixServiceImpl().execute(); 代替。- 然后,将原本sayHello中的业务代码,交由HystrixServiceImpl实现类来完成。此实现类继承HystrixCommand方法。代码如下图所示首先我们得实现第一个框子里面的构造方法,里面是对command的一些基础配置,如属于哪个分组,超时多久就会自动调用fallback方法等。第二个框子是我们业务的自己的方法,本来是写到HystrixService中的,现在写到run中。第三个框子是业务代码发生错误后,执行的方法。我们模拟了业务代码线程阻塞8秒,然而我们在构造方法中配置的是超过1秒就自动失败,调用fallback中的方法立即返回。
- 再写个Controller看效果。代码如下:
@RequestMapping("hystrix")
@ResponseBody
public ResultModel testHystrix(){
return new ResultModel(hystrixService.sayHello());
} - 通过浏览器访问:http://gen.meizu.com:8080/manage/hystrix。效果如下可见效果就是过看1秒后立即返回了fu***….
以上就是Hystrix最基本的用法。更详细的用法请看下一篇。
本文为作者原创,请勿随便转载,转载请联系作者qq475804848并标明出处。