前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Sentinel流量控制

Sentinel流量控制

作者头像
别团等shy哥发育
发布2023-02-25 15:23:52
5890
发布2023-02-25 15:23:52
举报
文章被收录于专栏:全栈开发那些事

Sentinel流量控制

1、Sentinel微服务限流

Sentinel流量控制(flow control)的原理是监控应用流量的QPS或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。

QPS:每秒的请求数。当每秒请求数超过指定阈值之后对当前请求进行限流。 并发线程数:当服务器中创建线程数超过指定阈值之后对当前请求进行限流。

2、QPS限流

2.1 配置QPS限流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 测试

每秒最大只能接收2个请求,超过2个报错

在这里插入图片描述
在这里插入图片描述

3、线程数限流

3.1 配置线程数限流

在这里插入图片描述
在这里插入图片描述

3.2 测试

这里使用压力测试工具apache-jmeter-5.2 下载链接:https://download.csdn.net/download/qq_43753724/22032153?spm=1001.2014.3001.5501 配置线程组:

在这里插入图片描述
在这里插入图片描述

配置http请求:

在这里插入图片描述
在这里插入图片描述

发起请求并在察看结果树中查看

在这里插入图片描述
在这里插入图片描述

可以看出,有一个请求没来得及处理。

4、流控模式

4.1 流控模式说明

  • 直接:标识流量控制规则到达阈值直接触发流量控制
  • 关联: 当两个资源之间具有资源争抢或者依赖关系的时候,这两个资源便具有了关联。比如对数据库同一个字段的读操作和写操作存在争抢,读的速度过高会影响写得速度,写的速度过高会影响读的速度。如果放任读写操作争抢资源,则争抢本身带来的开销会降低整体的吞吐量。可使用关联限流来避免具有关联关系的资源之间过度的争抢,举例来说,read_db 和 write_db 这两个资源分别代表数据库读写,我们可以给 read_db 设置限流规则来达到写优先的目的:设置 strategy 为 RuleConstant.STRATEGY_RELATE 同时设置 refResource 为 write_db。这样当写库操作过于频繁时,读数据的请求会被限流。
在这里插入图片描述
在这里插入图片描述
  • 链路:https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6

5、流控效果(只适用于QPS限流):

  • 直接拒绝:默认的流量控制方式,当QPS超过任意规则的阈值之后,新的请求就被立即拒绝,拒绝方式为抛出FlowException。
  • Warm Up:预热/冷启动方式。在系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过冷启动让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。
  • 匀速排队:严格控制请求通过的间隔时间,即让请求以均匀的速度通过,对应的是漏桶算法。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Sentinel流量控制
  • 1、Sentinel微服务限流
  • 2、QPS限流
    • 2.1 配置QPS限流
      • 2.2 测试
      • 3、线程数限流
        • 3.1 配置线程数限流
          • 3.2 测试
          • 4、流控模式
            • 4.1 流控模式说明
            • 5、流控效果(只适用于QPS限流):
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档