从实战的角度谈微服务(三):基于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
本篇内容是参考网络教程学习过程中的笔记
开发工作着,生活快乐着,留下总结,相互交流,共同进步
开发工作着,生活快乐着,留下总结,相互交流,共同进步