Spring Cloud 学习笔记4 Eureka 结合Hystrix实现断路器
之前的文章 Spring Cloud 学习笔记3 Eureka 结合feign实现负载均衡,Spring Cloud 学习笔记2 Eureka 结合ribbon实现负载均衡 。实现了feign/ribbon 负载均衡。
这篇笔记要实现的是,在负载均衡服务器的基础上,增加断路器,具体断路器的作用请见:Hystrix介绍,Github地址
本次代码都已经提交在github上,点击这里访问
本篇代码基于上篇文章的代码,见学习笔记3。
###一、Ribbon增加断路器 修改ribbon
项目的POM.XML
文件,增加依赖支持
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
RibbonApplication.java
文件类名增加注解@EnableHystrix
WelcomeService.java
修改 增加方法
public String welcomeError(String name){
return "welcome:"+name+"but,error";
}
方法welcomeService
增加注解@HystrixCommand(fallbackMethod = "welcomeError")
其中fallbackMethod
方法代表了消费者执行失败的时候,要回调的方法。
###二、尝试断路器
启动项目eurekaserver
,启动eurekaclient
,启动ribbon
。访问:http://localhost:7010/welcome
浏览器显示username PORT:7004
关闭eurekaclient
,再访问:http://localhost:7010/welcome
浏览器显示welcome:usernamebut,error
说明断路器已经正常工作。
###三、Feign增加断路器
修改feign
项目application.yml
文件,最末尾增加
feign:
hystrix:
enabled: true
修改FeignApplication.java
,类名上增加@EnableFeignClients
注解
增加ClientWelcomeHystrix.java
类,类名增加@Component
注解,实现接口IClientWelcome
,并实现方法welcomeFromClientOne
@Override
public String welcomeFromClientOne(String name) {
return "welcomeFromClientOne:Error:"+name;
}
修改IClientWelcome.java
接口,在接口名的注解上增加fallback = ClientWelcomeHystrix.class
,这个ClientWelcomeHystrix
就是上面的实现类
###四、尝试断路器
启动项目eurekaserver
,启动eurekaclient
,启动feign
。访问:http://localhost:7011/welcome
浏览器显示com.djc8 PORT:7004
关闭eurekaclient
访问:http://localhost:7011/welcome
浏览器显示welcomeFromClientOne:Error:com.djc8
说明断路器已经正常工作。
本文来自:Spring Cloud 学习笔记4 Eureka 结合Hystrix实现断路器-小码农,转载请保留本条链接,感谢!
- 本文标签: spring cloud eureka Hystrix 微服务 断路器
- 本文链接: https://djc8.cn/archives/spring-cloud-learning-notes-4-eureka-combined-with-hystrix-to-realize-circuit-breaker.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权