写点什么

SpringCloud Alibaba 入坑(四)Sentinel 基本流控规则

作者:Java高工P7
  • 2021 年 11 月 11 日
  • 本文字数:1114 字

    阅读完需:约 4 分钟


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


是流控](about:blank#_23)





前言


================================================================


[上一篇 SpringCloud Alibaba 入坑(三)Sentinel 入门


]( )


上篇文章介绍了 Sentinel 的基本用法,本章我们开始学习重点:Sentinel 的流控规则




什么是流控


===================================================================


流控就是流量控制,那么为什么要进行流控呢?


因为大型互联网应用都会有大量的用户流量,当遇到了某些特殊的时间节点,如:双十一秒杀、春节抢票等,大量的流量突然涌入系统,远远超过了服务器的处理能力,服务器可能直接宕机,造成整个系统不可用。


那么对这种问题,我们就需要对流量进行限制,对于超过限制的流量,我们可以采用熔断、降级、排队等待等方式来解决。


流控入门


==================================================================


下面我们通过边讲边练的方式,来讲解流控的基本概念。


首先我们再执行一下上篇文章的 api 接口:



然后我们进入 Sentinel 后台,在簇点链路中,可以看到/hello,在列表右边可以看到添加流控的按钮



基本流控规则


====================================================================


点下流控按钮,可以看到



在流控规则窗体里面,可以看到很多选项,那么这些都是些什么东东呢?


我们重点介绍下面三个:


  1. 资源名


这个比较好理解,就是 api 接口的名称了


  1. 阈值类型


阈值可以理解为最大值,如水的沸点是 100 度,水的温度阈值就是 100。


那么这个阈值类型就是最大值的不同类型,有两种:


  1. QPS (Query Per Seconds)每秒的请求数,1 秒内对资源的请求次数,超过阈值后就启动限流

  2. 线程数 这个就是对资源访问的线程数,超过阈值就启动限流

  3. 单机阈值


这个就是根据上面选择的类型,设置的最大值了


流控测试


==================================================================


光看文字介绍可能还是不好理解,那么我们来动手操作试试。


先来演示 QPS:阈值类型选择 QPS,然后单机阈值设置为 1,也就是说 1 秒内请求/hello 接口的次数超过 1 次,就会启动限流,最后点击新增,下面就出现了添加的流控规则:



测试下,浏览器访问下/hello,慢慢点击是没事的,快速点击(1 秒点击多次),就会出现下面的文字,意思是被 Sentinel 进行了限流。



然后我们在编辑下刚才的流控规则,把 QPS 改为线程数,阈值设置为 3,点击保存。



然后我们浏览器测试刚才的接口,可以看到不管点多快,接口都可以正常访问,没有出现限流。



那么怎么才能按线程数实现限流呢?


我们可以使用 JMeter 进行测试,JMeter 的基本使用这里就不介绍了,大家可以百度下。

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
SpringCloud Alibaba 入坑(四)Sentinel基本流控规则