限流降级和熔断隔离

当系统负载超出或即将超出预设阈值时,可将暂停或延迟使用一些不重要或不紧急的服务和任务,或者使用简单的处理方式替换之,从而释放服务器资源以保核心业务和基本服务的正常运行。

 

限流

限制系统峰值时的请求量,控制系统流量的最高水位,同时也可以对流量的平滑程度加以控制。超出阈值的请求放入消息队列,或直接拒绝,直接返回友好提示页面。

降级

在请求峰值达到阀值,或接口请求超时、请求失败次数达到预设值时,系统自动或人工对相应接口按照事先设定好的方案进行降级处理,优先降级非核心业务接口。

熔断

熔断是相对降级来说的,系统中如果某服务或接口调用慢或有大量超时,此时熔断该服务调用,对于后续请求直接返回,及时释放资源,如果目标服务情况好转则恢复调用。

隔离

对于出现故障或响应慢的被调用服务,当线程池被打满时系统自动隔离被调用服务,避免其影响调用服务的正常运行,对于处理不完的请求将其存入队列慢慢处理。

限流算法

计数器:计数器算法是限流算法里最简单也是最容易实现的一种算法。设置一个计数器counter,每当一个请求过来的时候,counter就加1,如果counter的值大于100并且该请求与第一个请求的间隔时间还在1分钟之内,那么说明请求数过多;每隔1分钟重置一次 counter。缺点是限流不够平滑,有突刺现象。

漏桶:请求先进入到漏桶里,漏桶以一定的速度出水,当水(请求)流入速度过大时水会直接溢出,漏桶算法能强行限制数据的传输速率。缺点是过于平滑无法满足短时间内的突发流量。

令牌:很多应用场景都允许某种程度的突发传输,这时漏桶算法可能就不合适了,令牌桶算法更为适合。

降级方法

页面降级:页面、页面片段、页面异步请求

服务功能:相关推荐、热销榜等非核心服务

读降级:降级到读缓存或静态页面

写降级:降级到写入缓存然后通过异步

解决方案

参考: 使用sentinel 遇到的一些坑_水的精神的博客-CSDN博客_sentinel 限流无效

Sentinel + GateWay + Nacos 实现基于推模式的接口限流(配置持久化)、自定义响应结果_我的笨毛毛的博客-CSDN博客_gateway nacos sentinel 持久化

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值