Spring Cloud Alibaba#17.Sentinel 限流控制

Spring Cloud Alibaba#17.Sentinel 限流控制

本文讲解Sentinel中限流策略的配置方法

笔记对应学习视频:

https://www.itlaoqi.com/chapter/2659.html

本节来我们来讲解Sentinel限流控制

在Sentinel Dashboard中"簇点链路",找到需要限流的URI,点击"+流控"进入流量控制编辑

Spring Cloud Alibaba#17.Sentinel 限流控制

流控规则:

资源名: 要流控的URI

针对来源: 默认default代表所有来源,可以针对某个微服务或者调用者单独设置

阈值类型:是按每秒访问数量(QPS)还是并发数(线程数)进行流控

单机阈值:具体的流控数值是多少

Spring Cloud Alibaba#17.Sentinel 限流控制

高级选项解释 :

  • 流控模式:
    • 直接

Spring Cloud Alibaba#17.Sentinel 限流控制

每秒QPS超过1时直接显示快速失败,浏览器会出现”Blocked by Sentinel”

    • 关联

Spring Cloud Alibaba#17.Sentinel 限流控制

当同服务关联URI/update每秒QPS超过1时,再访问/list快速失败

    • 链路

Spring Cloud Alibaba#17.Sentinel 限流控制

当同服务链路URI/check每秒QPS超过1时,再访问/list快速失败

  • 流控效果
    • 快速失败

Spring Cloud Alibaba#17.Sentinel 限流控制

超出直接报错没啥好说的

    • Warm Up预热

Spring Cloud Alibaba#17.Sentinel 限流控制

Warm Up预热

Spring Cloud Alibaba#17.Sentinel 限流控制

假设:现在有100个请求瞬间过来

单机QPS阈值=1,代表每一秒只能放行1个请求,其他请求队列等待,共需100秒处理完

单机QPS阈值=4,代表250毫秒匀速放行1个请求,其他请求队列等待,共需25秒处理完

单机QPS阈值=200,代表5毫秒匀速放行一个请求,其他请求队列等待,共需0.5秒处理完

如果某一个请求在队列中处于等待状态超过2000毫秒,则直接报错中断

PS: 匀速队列只支持QPS模式,切数值不得大于1000