Spring Cloud 简单入门教程 之 Hystrix (七)

Netflix的创造了一个调用的库Hystrix实现了断路器图案。在微服务架构中,通常有多层服务调用。较低级别的服务中的服务故障可能导致用户级联故障。当对特定服务的呼叫达到一定阈值时(Hystrix中的默认值为5秒内的20次故障),电路打开,不进行通话。在错误和开路的情况下,开发人员可以提供后备。开放式电路会停止级联故障,并允许不必要的或失败的服务时间来愈合。回退可以是另一个Hystrix保护的调用,静态数据或一个正常的空值。回退可能被链接,所以第一个回退使得一些其他业务电话又回到静态数据。
以上是Spring Cloud 对断路器Hystrix客户端的描述。官方文档的图片
这里写图片描述
这里写图片描述
对sevice-ribbon工程进行改造,pom文件添加依赖:

<!--spring-cloud-starter-hystrix的起步依赖-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
		</dependency>

在启动类上加注解;
@EnableHystrix
@EnableHystrixDashboard
调用服务的地方加上注解:
@HystrixCommand(fallbackMethod = “hiServiceError”) hiServiceError是调用远程服务出错的时候回调的方法。HelloService 添加方法:
public String hiServiceError(String name){
return name+“调用hiService失败”;
}
这里写图片描述
启动服务注册中心,启动service-ribbon,浏览器访问localhost:8761
这里写图片描述
可以看到只有一个消费者注册到注册中心。浏览器访问http://localhost:8764/hi?name=mms
这里写图片描述
能调用到远程服务。
断路器:Hystrix仪表板
Hystrix的主要优点之一是它收集关于每个HystrixCommand的一套指标。Hystrix仪表板以有效的方式显示每个断路器的运行状况。
前面已经将在pom添加了仪表板的起步依赖,也在启动类添加了相应的注解。浏览器访问http://localhost:8764/hystrix
这里写图片描述
在输入框输入http://localhost:8764/hystrix.stream,Tiitle输入任意字符,点击Montor Stream
这里写图片描述
可以看到hiService的是健康状态。
在Feign中使用断路由器:
同样在pom文件中添加添加依赖,application配置文件中添加配置feign.hystrix.enabled= true,在启动类上添加注解,@EnableHystrixDashboard,@EnableCircuitBreaker新建SayHiServiceFallBack实现SayHiService,重新sayHi方法,使用Spring注入。
/**

  • @author heyaunjun
  • @date 2017-11-6 11:02
    */
    @Component
    public class SayHiServiceFallBack implements SayHiService {
    @Override
    public String sayHi(String name) {
    return name+“feign调用服务失败”;
    }
    }
    SayHiService接口添加注解@FeignClient(value = “service-hi”,fallback = SayHiServiceFallBack.class).
    验证方法和ribbon的验证方式一样。
    未解决的问题:feign在使用断路由器的仪表版时,访问http://localhost:8764/hystrix会下载一个hystrix文件,文件大小时0kb。也无法看到服务的健康状态。
    这里写图片描述

各种IT书籍书目及下载链接
https://blog.csdn.net/dh1027/article/details/89327978

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章