新闻资讯

新闻资讯 行业动态

SpringCloud的雪崩效应

编辑:008     时间:2020-03-05

1、常见场景

(1)硬件故障:如服务器宕机,机房断电,光纤被挖断等。

(2)流量激增:如异常流量,重试加大流量等。

(3)缓存穿透:一般发生在应用重启,所有缓存失效时,以及短时间内大量缓存失效时。大量的缓存不命中,使请求直击后端服务,造成服务提供者超负荷运行,引起服务不可用。

(4)程序bug:如程序逻辑导致内存泄漏,JVM长时间FullGC等。

(5)同步等待:服务间采用同步调用模式,同步等待造成的资源耗尽。

2、应对策略

针对造成雪崩效应的不同场景,可以使用不同的应对策略,没有一种通用所有场景的策略。

(1)硬件故障:多机房容灾、异地多活等。

(2)流量激增:服务自动扩容、流量控制(限流、关闭重试)等。

(3)缓存穿透:缓存预加载、缓存异步加载等。

(4)程序bug:修改程序bug、及时释放资源等。

(5)同步等待:资源隔离、MQ解耦。、不可用服务调用快速失败等。资源隔离通常指不同服务调用采取不同的线程池;不可用服务调用快速失败一般通过熔断模式结合超时机制实现。

综上所述,如果一个应用不能对来自依赖的故障进行隔离,那该应用本身就处在被拖垮的风险中。因此,为了构建稳定、可靠的分布式系统,我们的服务应当具有自我保护能力,当依赖服务不可用时,当前服务启动自我保护功能,从而避免发生雪崩效应。


原文链接:https://my.oschina.net/u/4006148/blog/3176044

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐