利用Sentinel解决雪崩问题(一)

1、解决雪崩问题的常见方式有四种:

  1. 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待;
  2. 舱壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离;
  3. 熔断降级:由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求;
  4. 流量控制:限制业务访问的OPS,避免服务因流量的突增而故障。

 

2、Sentinel的流控模式

在添加限流规则时,点击高级选项,可以选择三种流控模式:
  • 直接:统计当前资源的请求,触发阈值时对当前资源直接限流,也是默认的模式;
  • 关联:统计与当前资源相关的另一个资源,触发阈值时,对当前资源限流;
  • 链路:统计从指定链路访问到本资源的请求,触发阈值时,对指定链路限流;

 

3、Sentinel的流控效果

流控效果是指请求达到流控阈值时应该采取的措施,包括三种:
  • 快速失败:达到阈值后,新的请求会被立即拒绝并抛出FlowException异常。是默认的处理方法
  • warm up:预热模式,对超出阈值的请求同样是拒绝并抛出异常。但这种模式阈值会动态变化,从一个较小值逐渐增加到最大阈值。
  • 排队等待:让所有的请求按照先后次序排队执行,两个请求的间隔不能小于指定时长。

3.1、快速失败,默认模式不过多介绍

3.2、warm up-效果示意图:

3.3、排队等待-效果示意图:

       如下图所示,本来激增的并发量, 由于加入了排队等待,巨大的并发请求变得有条不紊,不过在超过排队队列的容量的那些请求,可能会丢失,有利有弊。

4、热点参数限流

相关推荐

  1. redis雪崩问题怎么解决

    2024-04-11 18:20:03       36 阅读
  2. Redis之缓存雪崩问题解决方案

    2024-04-11 18:20:03       47 阅读
  3. 利用super解决问题

    2024-04-11 18:20:03       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-11 18:20:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-11 18:20:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-11 18:20:03       82 阅读
  4. Python语言-面向对象

    2024-04-11 18:20:03       91 阅读

热门阅读

  1. 基于springboot的大创管理系统源码数据库

    2024-04-11 18:20:03       37 阅读
  2. 数据结构5:哈希表

    2024-04-11 18:20:03       35 阅读
  3. 聊聊Redis消息队列stream

    2024-04-11 18:20:03       33 阅读
  4. python爱心代码高级

    2024-04-11 18:20:03       31 阅读
  5. 面试经典150题——移除元素

    2024-04-11 18:20:03       34 阅读
  6. LeetCode -- 第 392 场周赛

    2024-04-11 18:20:03       37 阅读
  7. rollup 插件架构-驱动设计 PluginDriver

    2024-04-11 18:20:03       34 阅读
  8. 中国知网:学术资源的宝库与知识共享的平台

    2024-04-11 18:20:03       39 阅读
  9. 蓝桥杯 2022 省 B 洛谷 P8787 砍竹子

    2024-04-11 18:20:03       45 阅读
  10. 【蓝桥杯】快读&快写

    2024-04-11 18:20:03       36 阅读