Hystrix介绍
在分布式环境中,许多服务依赖项中的一些必然会失败。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。
使用
坐标
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-hystrix -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
开启注解
@EnableHystrix //开启熔断器
具体使用
/**
* 发送post请求 不带请求头的方法
*
*/
@GetMapping("/test3/save")
@HystrixCommand(fallbackMethod = "defaultCallHello")
public String test3(){
// restTemplate.exchange();
HouseInfo houseInfo2 = new HouseInfo(2l, "杭州", "余杭", "桃花港");
HouseInfo houseInfo1 = restTemplate.postForObject("http://localhost:8082/house/save",houseInfo2 , HouseInfo.class);
assert houseInfo1 != null;
return houseInfo1.toString();
}
返回方法
public String defaultCallHello() {
return "对不起 ,您访问的内容出错";
}
测试结果
当端口号服务不存在时,就会执行返回方法
注意
返回方法的类型需要和接口类型保持一致