系统服务熔断、限流:常见限流算法 & 主流熔断技术详解

1 为什么熔断限流

分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。

如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,

无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应。

点击查看大图

1.2 雪崩效应常见场景

  • 硬件故障:如服务器宕机,机房断电,光纤甚至专线被破坏等。

  • 流量激增:如异常流量,线上活动导致的流量激增,重试导致流量放大等。

  • 缓存穿透:缓存服务重启,导致大量缓存同时失效时。重建缓存或者大量的请求无法命中缓存,会直接投向数据库,导致服务和数据层压力骤增甚至雪崩。

  • 程序漏洞:如程序逻辑(如死循环)导致内存泄漏,或者死锁操作导致互相等待,或者 JVM 长时间 FullGC 等。

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

1.3 雪崩效应应对策略

针对上述的常见场景,需要给出不同的策略来应对,主要有如下几个方面,参考如下:

  • 硬件故障:分服甚至分机房容灾、异地多活等。

  • 流量激增:服务动态扩缩容,流量控制(熔断,限流,超时重试)等。

  • 缓存穿透:缓存预加载、异步加载,设置不定的过期时间等。

  • 程序的健壮性:修复程序漏洞、避免内存泄漏、及时释放资源 等等。

  • 同步等待:资源隔离、MQ 解耦、不可用服务调用快速失败(超时能力)等。

综合上述的内容可知&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值