SpringCloud-Hystrix 服务降级与熔断

接上文SpringCloud-Feign

问题描述


为了解决上述情况,SpringCloud提供了Hystrix熔断器组件,如同保险丝。服务降级则不会直接返回错误,而是提供一个补救措施,正常响应给请求者。

1.服务降级

基于借阅管理服务,不开启用户和图书,即两者挂掉。

导入Hystrix依赖(此项目已停止维护,SpringCloud依赖中不自带了)。

启动类加上注解

将用户和图书服务关闭,此时查阅信息不可用,则提供一个备选方案。也就是当服务出现异常时,返回我们的备选方案。

重启borrow-service服务

此时访问借阅信息接口即返回为空

2.服务熔断


重启后不断访问http://localhost:8201/borrow/1,发现刚开始会正常执行方法,然后进行补救。随着点击次数增多,会只执行补救。过段时间再点击还会执行正常方法再补救。即熔断。![在这里插入图片描述](https://file.jishuzhan.net/article/1699985616877391873/95040db0b7134e23891946b0b4e1d09a.png)

然后开启用户服务和图书服务。此时服务恢复后就会正常执行两个服务方法,熔断机制就会关闭。

总结

3.openfeign实现降级

openfeign降级是针对访问某个controller方法失败后进行服务降级。此时将用户服务挂掉,图书服务不挂掉,执行借阅信息查看,则用户服务调用失败,此时给用户服务一个替代方案。

在borrow-service配置文件中添加配置让支持熔断

将user-service关闭,重启borrow-service服务

针对user-service的挂掉,出现补救措施。book-service的补救措施同理。

4.Hystrix监控

新建一个模块



启动Hystrix管理页面服务,在进行监控的服务中添加依赖

服务重启

可以正常访问

启动监控服务

可以查看管理页面

在中级输入要监控的服务,比如借阅服务:http://localhost:8201/actuator/hystrix.stream,然后点击monitor stream,查看服务,如图。

在访问接口后监控页面会变动。

**需要源文件可关注并在下方扣1,会私发。

相关推荐
爱喝醋的雷达19 分钟前
Spring SpringBoot 细节总结
java·spring boot·spring
阁阁下3 小时前
springcloud configClient获取configServer信息失败导致启动configClient注入失败报错解决
后端·spring·spring cloud
whisperrr.4 小时前
【spring01】Spring 管理 Bean-IOC,基于 XML 配置 bean
xml·java·spring
天上掉下来个程小白4 小时前
HttpClient-03.入门案例-发送POST方式请求
java·spring·httpclient·苍穹外卖
robin_suli5 小时前
Spring事务的传播机制
android·java·spring
暮乘白帝过重山6 小时前
Singleton和Prototype的作用域与饿汉式/懒汉式的初始化方式
spring·原型模式·prototype·饿汉式·singleton·懒汉式
ejinxian6 小时前
Spring AI Alibaba 快速开发生成式 Java AI 应用
java·人工智能·spring
杉之6 小时前
SpringBlade 数据库字段的自动填充
java·笔记·学习·spring·tomcat
圈圈编码7 小时前
Spring Task 定时任务
java·前端·spring
爱的叹息7 小时前
Java 连接 Redis 的驱动(Jedis、Lettuce、Redisson、Spring Data Redis)分类及对比
java·redis·spring