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

雪崩的介绍

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

解决思路

一般有四种思路:

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

2.限流

3.隔离

4.熔断降级

限流

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

隔离

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

熔断降级

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

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

相关推荐
dkbnull1 分钟前
数据库性能调优详解
数据库·mysql
盖伦发发7 分钟前
Redis 核心教学: 数据结构, 缓存设计, 分布式锁
java·redis·后端·软件工程
卷毛的技术笔记8 分钟前
RocketMQ事务消息:我把分布式事务这层窗户纸捅破了
java·分布式·后端·java-rocketmq
风哥2号15 分钟前
数据库教程FGMT50‑PostgreSQL体系结构深入与源码解析
数据库·postgresql
yxlalm21 分钟前
零基础快速上手Trae创建Java项目
java·人工智能
ly768927 分钟前
磁盘 I/O 延迟突增:用 iostat、blktrace 与火焰图定位到具体调用栈
java·linux·前端·数据库·iostat·磁盘 i/o·blktrace
倔强的石头_28 分钟前
数据迁移工具KDMS如何生成量化评估报告
数据库
泡海椒31 分钟前
jquick-pdf 核心原理解析:基于 HTML 模板动态渲染 PDF 的实现逻辑
java·开发语言·pdf
冰暮流星32 分钟前
mysql多表练习2
数据库·sql·mysql
天天喝旺仔38 分钟前
Git 内部原理深度解析:从 blob/tree/commit 对象到 packfile 与垃圾回收
数据结构·数据库·git·算法·哈希