灾难性雪崩效应及其解决方案

灾难性雪崩效应

在这里插入图片描述
一个请求调用多个服务时,如果客户端访问A服务,A服务调用B服务,B服务需要调用C服务,由于网络原因或者硬件故障,程序Bug的原因,如果B和C服务不能及时响应,A服务处于阻塞状态,此时有大量的请求涌入,导致资源消耗完毕,最终造成服务逻辑崩溃。服务与服务之间的依赖性,会造成连锁反应,对整个微服务系统造成灾难性的严重后果。

造成灾难性雪崩的原因
  • 服务提供者不可用
    硬件故障、程序Bug、缓存击穿、请求量过大
  • 重试加大流
    用户重试,代码重试逻辑
  • 服务调用者不可用
    同步请求阻塞造成资源耗尽
解决灾难性雪崩效应的方式
  • 降级
    当请求超时,资源不足对的情况下进行服务降级。降级后可以配合降级返回托底数据实现一个fallback()方法,当请求后端发生异常的时候,可以使用fallback()方法返回的值
  • 熔断
    当失败率(网络/超时)达到阀值自动触发降级,熔断器触发的快速失败会进行快速回复
  • 请求缓存
  • 隔离
    限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他服务调用
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值