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

雪崩的介绍

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

解决思路

一般有四种思路:

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

2.限流

3.隔离

4.熔断降级

限流

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

隔离

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

熔断降级

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

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

相关推荐
尽兴-2 分钟前
MySQL 8.0主从复制原理与实战深度解析
数据库·mysql·主从复制
小北方城市网4 分钟前
SpringBoot 集成 RabbitMQ 实战(消息队列解耦与削峰):实现高可靠异步通信
java·spring boot·python·微服务·rabbitmq·java-rabbitmq·数据库架构
Mr_sun.4 分钟前
Day04——权限认证-基础
android·服务器·数据库
百锦再5 分钟前
国产数据库现状与技术演进
数据库·python·plotly·flask·virtualenv·pygame·tornado
java_t_t8 分钟前
Maven插件apiscan介绍与使用
java·maven·api文档·maven插件
煎蛋学姐16 分钟前
SSM学生会综合管理系统8berj(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·计算机毕业设计·ssm 框架·学生会综合管理系统
带刺的坐椅16 分钟前
FastJson2 与 SnackJson4 有什么区别?
java·jsonpath·fastjon2·snack4
linweidong18 分钟前
C++如何避免 ODR(One Definition Rule)冲突?
java·jvm·c++
毅炼24 分钟前
hot100打卡——day09
java·leetcode
YongCheng_Liang1 小时前
MySQL 高级特性深度解析:从索引优化到高可用架构
运维·数据库·mysql