天天看点

SpringCloud(3) 集成Hystrix实现服务容错和服务降级

SpringCloud集成Hystrix实现服务容错和服务降级

###SpringBoot版本2.0.5

什么是Hystrix

在分布式环境中,许多服务依赖项中的一些将不可避免地失败。Hystrix是一个库,通过添加延迟容差和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,停止其间的级联故障以及提供回退选项,从而提高系统的整体弹性。
           

如何使用Hystrix

Feign整合Hystrix实现服务降级

步骤

1、添加pom依赖

SpringBoot版本2.0Feign已经整合了Hystrix依赖,所以无需其他依赖。
           

2、编辑服务降级处理类Hystrix.java

例:

@Component
public class Hystrix implements Client{

	@Override
	public String getuserinfo(String name) {
		// TODO Auto-generated method stub
		return "the services services1 is wrong";
	}

}
该类实现了Client接口,实现降级之后需要进行的逻辑处理,如抛出异常或打印日志。
           

3、在Client接口类里调用该降级类

例:

@FeignClient(value = "services",fallback = Hystrix.class)
在Feign的注解中指定fallback的类,这种情况下,在绑定的微服务services故障或对应方法阻塞时,会调用Hystrix.class中的对应方法实现断路处理。
           

注意:

1、在我的测试中Hystrix会出现不起作用的情况,通过编辑application.propertity文件增加feign.hystrix.enabled=true解决。在SpringBoot1.4版本中是自动启动的,但是在这个版本里没有自动启动的情况下可以这么处理。

2、版本不同会有不一样的处理,低版本会出现启动注解和pom依赖的增加。详细可查阅资料。

继续阅读