从实战的角度谈微服务(三):基于Feign的熔断

一、简介

熔断就是为了当提供接口的服务出现异常时,能够及时发现,返回一个固定的错误值代码。简单的说,熔断就是对服务异常的一种可控回应。

本片基于上篇《从实战的角度谈微服务(三):基于Feign服务间的调用》在基于Feign项目的基础上,实现功能。

二、配置步骤

主要分三步:

  • 依赖包引入
  • 配置文件修改
  • 创建熔断回调接口类
  • 启动类添加注解

三、依赖包引入(Feign内部已经支持了断路器,所以不需要像Ribbon方式一样,在Spring Boot启动类上加额外注解

在pom.xml文件新引入可视化监控面板依赖包

<!--熔断可视化依赖开始-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
<!--(健康监控)配置和使用-->

<!--添加熔断器结束-->

四、配置文件修改

开启熔断,默认为关闭状态

feign:
  hystrix:
    enabled:true

五、创建熔断回调接口类,实现要配置回调处理的Feign类

1、创建UserFallback.java

UserFallback.java对应处理TestService.java这一接口,实现其方法,当微服务接口出现调用异常时,即执行当前实现的接口。

2、TestService.java添加注解声明

在接口类TestService.java,通过配置注解“fallback = UserFallback.class”,声明熔断操作实现类

 六、修改项目启动类,添加可视化界面

1、添加注解@EnableHystrixDashboard

2、添加ServletRegistrationBean,

springboot 版本如果是2.0则需要添加 ServletRegistrationBean 因为springboot的默认路径不是 "/hystrix.stream",只要在自己的项目里配置上下面的servlet就可以了。

访问测试:
输入:http://localhost:8765/hystrix

原文地址:https://www.cnblogs.com/lovechengyu/p/9509449.html