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)》许可协议授权
