![49d24e9ebe308c1efe2d059570a6a4e0.png](https://img-blog.csdnimg.cn/img_convert/49d24e9ebe308c1efe2d059570a6a4e0.png)
一 前言
springcloud系列文章已经出到hystrix,中间知识追寻者跑去学了其它知识,回来感觉spingcloud系列出的也不少了;需要完全理解这篇文章对于初学者需要有一定的基础知识,如果看不懂请移步知识追寻者的springcloud专栏进行学习;学完本篇,你将获得学会使用Hstrix进行服务容错,学会Hystrix熔断监控;能学完本篇内容请留下赞呦!!!!
二 Hystrix入门
首先需要搭建工程hystrix-client
引入eureka和 hystrix依赖
2.1pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
</dependencies>
2.2 service
在service层定义一个获得用户的方法getUser()用于提供服务,方法内容对用户名进行判断,如果是zszxz
, 返回回用户说明,否则抛出异常;定义默认用户方法defaultUser()用于容错处理,在获得用户方法上面添加注释@HystrixCommand
并且将容错回调指向defaultUser()方法;有关注释详细使用请读者参考如下官方文档;
="https://github.com/Netflix/Hystrix/tree/master/hystrix-contrib/hystrix-javanica#configuration">Hystrix@HystrixCommand配置
/**
* @Author lsc
* <p> </p>
*/
@Component
public class UserService {
// 为getUser方法添加容错回调处理
@HystrixCommand(fallbackMethod = "defaultUser")
public String getUser(String params){
if (params.equals("zszxz")){
return "the user is zszxz";
}else {
// 抛出异常时会直接调用fallbackMethod中指定的方法
throw new RuntimeException();
}
}
/* *
* @Author lsc
* <p> 出错回调处理</p>
* @Param [params]
* @Return java.lang.String
*/
public String defaultUser(String params){
return "it is the user thar is not exist in project";
}
}
2.3 controller
表现层直接调用服务层方法,参数为用户名username
/**
* @Author lsc
* <p> </p>
*/
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("user")
public String getUser(String username){
return userService.getUser(username);
}
}
2.4application.yml
配置文件中指定端口8094
, 并且指定应用名称为 hystrix-client
, 后面是向eureka-server进行服务注册;