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

超详细的Java知识点路线图



前言

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

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


什么是流控

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

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

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

流控入门

下面我们通过边讲边练的方式,来讲解流控的基本概念。
首先我们再执行一下上篇文章的api接口:
在这里插入图片描述
然后我们进入Sentinel后台,在簇点链路中,可以看到/hello,在列表右边可以看到添加流控的按钮
在这里插入图片描述

基本流控规则

点下流控按钮,可以看到
在这里插入图片描述
在流控规则窗体里面,可以看到很多选项,那么这些都是些什么东东呢?

我们重点介绍下面三个:

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

  2. 阈值类型
    阈值可以理解为最大值,如水的沸点是100度,水的温度阈值就是100。
    那么这个阈值类型就是最大值的不同类型,有两种:

    1. QPS (Query Per Seconds)每秒的请求数,1秒内对资源的请求次数,超过阈值后就启动限流
    2. 线程数 这个就是对资源访问的线程数,超过阈值就启动限流
  3. 单机阈值
    这个就是根据上面选择的类型,设置的最大值了

流控测试

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

先来演示QPS:阈值类型选择QPS,然后单机阈值设置为1,也就是说1秒内请求/hello接口的次数超过1次,就会启动限流,最后点击新增,下面就出现了添加的流控规则:
在这里插入图片描述
测试下,浏览器访问下/hello,慢慢点击是没事的,快速点击(1秒点击多次),就会出现下面的文字,意思是被Sentinel进行了限流。
在这里插入图片描述
然后我们在编辑下刚才的流控规则,把QPS改为线程数,阈值设置为3,点击保存。

在这里插入图片描述
然后我们浏览器测试刚才的接口,可以看到不管点多快,接口都可以正常访问,没有出现限流。
在这里插入图片描述
那么怎么才能按线程数实现限流呢?
我们可以使用JMeter进行测试,JMeter的基本使用这里就不介绍了,大家可以百度下。

  1. 添加线程组
    在这里插入图片描述
  2. 设置线程数为5和永远循环,意思就是每次都会启动5个线程来访问上面的接口
    在这里插入图片描述
  3. 添加取样器
    在这里插入图片描述
    配置接口访问的选项
    在这里插入图片描述
  4. 可以添加个监听器,看访问结果
    在这里插入图片描述
  5. 最后点击上面的启动测试按钮
    在这里插入图片描述

结果是:出现了限流
在这里插入图片描述

总结

本文介绍了Sentinel的基本流控规则,这里有QPS和线程数两种,至于使用哪一种,那么需要看我们的具体业务和服务器资源是对请求量还是线程数敏感了,然后这里还有一些问题:

  1. 上面出现限流的文字是Sentinel自带的,能不能设置成我们自己的,或者用更好的方式提示用户呢?
  2. 还有流控规则里面还有个高级选项,这些选项又有什么作用呢?

我会在后面的博客中介绍,谢谢大家的阅读,如果觉得有用的话,请点个赞了:)


大家如果需要学习其他Java知识点,戳这里 超详细的Java知识点汇总

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒哥~Bingo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值