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

雪崩的介绍

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

解决思路

一般有四种思路:

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

2.限流

3.隔离

4.熔断降级

限流

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

隔离

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

熔断降级

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

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

相关推荐
好记忆不如烂笔头abc几秒前
oracle日志生成量
数据库·oracle
无盐海2 分钟前
Redis 集群模式Redis Cluster
数据库·redis·缓存
醉风塘2 分钟前
数据库索引深度解析:从数据结构到最佳实践
数据结构·数据库
华仔啊2 分钟前
都在用 Java8 或 Java17,那 Java9 到 16 呢?他们真的没用吗?
java·后端
Austindatabases2 分钟前
OceanBase SeekDB SQL优化案例---MySQL在客户端会没有市场的
数据库·sql·mysql·adb·oceanbase
WizLC3 分钟前
【后端】面向对象编程是什么(附加几个通用小实例项目)
java·服务器·后端·python·设计语言
刘个Java3 分钟前
手搓遥控器通过上云api执行航线
java·redis·spring cloud·docker
好大哥呀3 分钟前
Redis解析
数据库·redis·缓存
User_芊芊君子3 分钟前
GLM-4.7 与 MiniMax M2.1 实测上线免费使用:国产大模型的 “工程化 + 长周期” 双赛道落地
数据库·redis·缓存
wanghowie3 分钟前
01.09 Java基础篇|算法与数据结构实战
java·数据结构·算法