共计 738 个字符,预计需要花费 2 分钟才能阅读完成。
1、雪崩效应
1.1、什么是雪崩效应
在微服务架构中,服务之间通常存在级联调用。比如,服务 A 调用服务 B,而服务 B 需要调用服务 C,而服务 C 又需要调用服务 D。如果其中任意一点不可用,或者存在响应延时,则可能造成很多服务不可用,即产生级联故障。
“服务提供者”不可用导致 ” 服务消费者 ” 不可用并将不可用逐渐放大到整个微服务系统,进而造成系统崩溃。
1.2、造成雪崩的原因
1.2.1、流量激增
** 例如:** 新闻事件、促销活动、恶意功击等。
1.2.2、硬件故障
例如: 单点的硬件损坏使得集群的服务压力加大,从而出现服务延迟,服务延迟不断加剧导致雪崩。
1.2.3、程序中的 Bug
** 例如:** 程序中有循环调用等逻辑问题,或者资源未释放引起的内存泄漏。
1.2.4、缓存问题
** 例如:** 缓存穿透、缓存击穿、缓存雪崩也可能导致服务雪崩。
1.2.5、配套资源不可用
** 例如:** 数据中心掉线,电信基础网络服务出现城市集群故障。
2、主流的容错项目
2.1、Sentinel
Sentinel 是一款面向分布式服务架构的轻量级流量控制组件,根据设置的规则来为资源执行相应的流量控制、服务降级、系统保护策略。
2.2、容错框架 Resilience4j
Resilience4j 一个比较轻量级的、模块化的熔断降级库。它由熔断、限速器、自动重试等功能组成,这些功能都被拆分成了单独的模块,用户可以根据需要引入相应功能的依赖。
Resilience4j 在较小的项目中使用比较方便,但是 Resilience4j 只适用于限流降级的基本场景,无法适用于非常复杂的企业级服务架构。
2.3、容错框架 Hystrix
Hystrix 是由 Netflix 开源的一款容错框架,包含隔离、熔断、降级回退和缓存容错、缓存、批量处理请求、主从分担等常用功能。
正文完
星哥玩云-微信公众号