原创

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>

1.jpg

RibbonApplication.java文件类名增加注解@EnableHystrix

2.jpg

WelcomeService.java修改 增加方法

public String welcomeError(String name){
    return "welcome:"+name+"but,error";
}

方法welcomeService增加注解@HystrixCommand(fallbackMethod = "welcomeError")

3.jpg

其中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

4.jpg

修改FeignApplication.java,类名上增加@EnableFeignClients注解

5.jpg

增加ClientWelcomeHystrix.java类,类名增加@Component注解,实现接口IClientWelcome,并实现方法welcomeFromClientOne

@Override
public String welcomeFromClientOne(String name) {
    return "welcomeFromClientOne:Error:"+name;
}

6.jpg

修改IClientWelcome.java接口,在接口名的注解上增加fallback = ClientWelcomeHystrix.class,这个ClientWelcomeHystrix就是上面的实现类

7.jpg

###四、尝试断路器

启动项目eurekaserver,启动eurekaclient,启动feign。访问:http://localhost:7011/welcome

浏览器显示com.djc8 PORT:7004

关闭eurekaclient

访问:http://localhost:7011/welcome

浏览器显示welcomeFromClientOne:Error:com.djc8

说明断路器已经正常工作。

温馨提示:
本文最后更新于 2020年08月18日,已超过 902 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录