微服务项目雪崩的解决思路

雪崩的介绍

雪崩是微服务中某个服务挂了,无法返回请求,导致调用改服务的上层服务也故障,最终形成连锁反应,导致整个系统故障。

解决思路

一般有四种思路:

1.最简单的就是超时处理,即超过一段时间就返回错误信息,但在请求量很大时仍然会出现问题,只能延缓。

2.限流

3.隔离

4.熔断降级

限流

简单说是允许每秒有多少个请求发给某个服务,减少服务的压力,降低服务故障的可能,从而避免雪崩发生。

隔离

服务已经故障的情况下进行,给要调用的服务单独分配一个线程池(或者用信号量记录),既是要调用的服务故障,耗尽所有的资源,但不影响其他服务进行。

熔断降级

熔断:每秒查看一定数量的请求,如果被查看的请求超过一定量发生异常,将服务熔断,后面调用该服务的请求一律返回异常(速度很快)。超过一定时间后,尝试放行一次请求,如果异常,继续熔断,反之,将服务恢复正常。

降级:熔断后直接返回异常信息不太合适,可以返回一个降级的返回信息,提高体验。注意!因为要调用的服务已经熔断,降级的信息只能在上层服务中写。

相关推荐
zhangchaoxies13 小时前
如何在CSS中正确加载本地JPG背景图片
jvm·数据库·python
阿坤带你走近大数据13 小时前
Oracle报错-锁问题
数据库·oracle
zhougl99613 小时前
Redis 防止丢数据
java·redis·mybatis
旺仔小拳头..13 小时前
JDBC 基础: API、SQL 注入问题,事务、连接池
数据库·sql
烟话613 小时前
C# 内存机制详解:值类型、引用类型与 String 的不可变性
java·jvm·c#
NineData13 小时前
玖章算术NineData成功入选杭州市“新雏鹰”企业
运维·数据库·后端
Javatutouhouduan13 小时前
深入学习JVM底层原理:JVM源码剖析与实例详解
java·jvm·java虚拟机·java面试·后端开发·java程序员·java性能优化
z44247532613 小时前
CSS如何实现元素悬浮在页面底部_利用fixed定位与底部间距
jvm·数据库·python
m0_5964063713 小时前
mysql数据库用户密码加固策略_实施强密码策略与定期轮换
jvm·数据库·python
m0_6765443813 小时前
CSS如何实现语义化样式编写_使用BEM规范提升命名直观性
jvm·数据库·python