什么是服务雪崩,雪崩会造成什么后果,如何解决。
微服务中往往存在多个服务,且服务之间互相调用,当某个服务不可用,导致其他服务可能发生连锁效应,导致整个系统变得不可用,这种现象称之为服务雪崩效应。
服务雪崩造成的原因(分三阶段分析):
- 服务提供者不可用
- 重试造成流量加大
- 服务调用者不可用
服务不可用原因:
- 硬件故障
- 程序Bug
- 缓存击穿
- 用户请求量过大
重试造成的流量加大的原因:
- 用户的频繁重试
- 代码逻辑重试
解决服务雪崩问题方案:
- 增加硬件设施
- 流量控制(网关限流,nignx限流,AOP限流,关闭程序重试)
- 缓存(缓存预加载)
- 服务的降级、服务的熔断