搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
爱喝兽奶帝天荒
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
JSP+SSM+Mysql实现的学生成绩管理系统_学生成绩管理系统jsp简单
2
富文本编辑器——UEditor的使用——基础积累
3
高中计算机专业满分多少,高考的通用技术和信息技术总分是多少
4
AI竞赛的铁人三项【算法(做功效率)、数据(燃料)、算力(引擎)】关系、作用及例子 合力创造奇迹_人工智能三要素算力算法
5
redis和mysql双写一致_Redis Mysql 双写一致性问题
6
IDEA修改git账号_idea中git更改账号
7
网络加密认证算法 HTTP授权认证 角色访问控制模型 身份和访问管理 JWT一种认证协议 编码算法 加密算法 对称加密 加密、解密、签名、验签,密钥,证书 消息摘要 哈希散列算法
8
VMware ESXi 6.7 提示:该主机可能容易受到CVE-2018-3646中所描述问题的影响,有关详细信息和VMware建议_该主机可能容易受到 cve-2018-3646 中所描述问题的影响
9
Redis遍历所有key的两个命令 -- KEYS 和 SCAN_key: 'scanlogs',
10
ConnectivityManager
当前位置:
article
> 正文
SpringCloud Alibaba——Sentinel中使用的限流算法_阿里巴巴限流sentinel限流算法
作者:爱喝兽奶帝天荒 | 2024-06-20 10:20:10
赞
踩
阿里巴巴限流sentinel限流算法
目录
一、Sentinel中使用的限流算法
1.1、计数器固定窗口算法
1.1.1、计数器固定窗口算法的概述
1.1.2、计数器固定窗口算法的问题
1.2、计数器滑动容口算法
1.2.1、计数器滑动容口算法的概述
1.2.2、计数器滑动容口算法的问题
1.3、漏桶算法
1.3.1、漏桶算法的概述
1.3.2、漏桶算法的特点
1.4、令牌桶算法
1.4.1、令牌桶算法的概述
1.4.2、令牌桶算法如何解决突发流量的
1.4.3、令牌桶算法的特点
一、Sentinel中使用的限流算法
1.1、计数器固定窗口算法
1.1.1、计数器固定窗口算法的概述
计数器固定窗口算法是最简单的限流算法,实现方式也比较简单。就是通过维护一个单位时间内的计数值,每当个请求通过时,就将计数值加1,当计数值超过预先设定的闽值时,就拒绝单位时间内的其他请求。如果单位时间已经结束,则将计数器清零,开启下一轮的计数。
1.1.2、计数器固定窗口算法的问题
但是这种实现会有一个问题,例如:假设我们设定1秒内允许通过的请求阀值是99,如果有用户在时间窗口的最后几毫秒发送了99个请求,紧接着又在下一个时间窗口开始时发送了200个请求,那么这个用户其实在一秒内成功请求了198次,显然超过了值但并不会被限流。其实这就是临界值问题,那么临界值问题要怎么解决呢?
1.2、计数器滑动容口算法
1.2.1、计数器滑动容口算法的概述
计数器滑动窗口法就是为了解决上述固定窗口计数存在的问题而诞生。前面说了固定窗口存在临界值问题,要解决这种临界值问题,显然只用一个窗口是解决不了问题的。假设我们仍然设定1秒内允许通过的请求是200个,但是在这里我们需要把1秒的时间分成多格,假设分成5格(格数越多,流量过渡越平滑),每格窗口的时间大小是200毫秒,每过200毫秒,就将窗口向前移动一格。为了便于理解,可以看下图:
上图中将窗口划为5份,每个小窗口中的数字表示在这个窗口中请求数,所以通过观察上图,可知在当前时间快(200毫秒)允许通过的请求数应该是70而不是200 (只要超过70就会被限流),因为我们最终统计请求数时是需要把当前窗口的值进行累加,进而得到当前请求数来判断是不是需要进行限流。
1.2.2、计数器滑动容口算法的问题
滑动窗口限流法其实就是计数器固定窗口算法的一个变种。流量的过渡是否平滑依赖于我们设置的窗口格数也就是统计时间间隔,格数越多,统计越精确,但是具体要分多少格我们也无法知道。
1.3、漏桶算法
1.3.1、漏桶算法的概述
漏桶算法以一个常量限制了出口流量速率,因此漏桶算法可以平滑突发的流量。其中漏桶作为流量容器我们可以看做一个FIFO的队列,当入口流量速率大于出口流量速率时,因为流量容器是有限的,当超出流量容器大小时超出的流量会被丢弃。
下图比较形象的说明了漏桶算法的原理,其中水龙头是入口流量,漏桶是流量容器,匀速流出的水是出口流量.
1.3.2、漏桶算法的特点
漏桶具有固定容量,出口流量速率是固定常量 (流出请求)
入口流量可以以任意速率流入到漏桶中 (流入请求)
如果入口流量超出了桶的容量,则流入流量会溢出 (新请求被拒绝)
不过因为漏桶算法限制了流出速率是一个固定常量值,所以漏桶算法不支持出现突发流出流量。但是在实际情况下,流量往往是突发的。
1.4、令牌桶算法
1.4.1、令牌桶算法的概述
令牌桶算法是漏桶算法的改进版,可以支持突发流量。不过与漏桶算法不同的是,令牌桶算法的漏桶中存放的是令牌而不是流量。
1.4.2、令牌桶算法如何解决突发流量的
最开始,令牌桶是空的,我们以恒定速率往令牌桶里加入令牌,令牌桶被装满时,多余的令牌会被丢弃。当请求到来时,会先尝试从令牌桶获取令牌(相当于从令牌桶移除一个令牌),获取成功则请求被放行,获取失败则阻塞活拒绝请求。
1.4.3、令牌桶算法的特点
最多可以存发b个令牌,如果令牌到达时令牌桶已经满了,那么这个令牌会被丢弃。
每当一个请求过来时,就会尝试从桶里移除一个令牌,如果没有令牌的话,请求无法通过。
令牌桶算法限制的是平均流量,因此其允许突发流量 (只要令牌桶中有令牌,就不会被限流)。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/739477
推荐阅读
article
【微服务】
springcloud
-
alibaba
配置
多
环境
管理
使用详解...
springcloud
-
alibaba
配置
多
环境
管理
使用详解【微服务】
springcloud
-
alibaba
配置
多
环...
赞
踩
article
【经验分享】SpringCloud + MyBatis
Plus
配置
MySQL
,
TDengine
...
因为项目中采集工厂中的设备码点的数据量比较大,需要集成
TDengine
时序数据库,所以需要设置双
数据源
。_springc...
赞
踩
article
Springcloud
Alibaba使用
Canal
将
Mysql
数据实时同步到
Redis
保证缓存的一...
Springcloud
,
Redis
,
Canal
_
canel
同步到
redis
中
canel
同步到
redis
中 ...
赞
踩
article
【业务功能115】微
服务
-springcloud-springboot-
Kubernetes
-k8s...
持续集成是指软件个人的部分向软件整体部分交付,频繁进行集成以便更快地发现其中错误。全面的自动化测试这是实践持续集成&持续...
赞
踩
article
SpringCloud
《
Eureka
、
Ribbon
、
Feign
、
Hystrix
、
Zuul
》作用简单介...
业务流程,支付订单功能订单服务改变为已支付订单服务调用库存服务,扣减库存订单服务调用仓储服务,通知仓储发货订单服务调用积...
赞
踩
article
SpringCloud
—07—高级之
SpringCloud
Alibaba
上_
spring
clou...
文章目录提前预知14、
SpringCloud
Bus 消息总线15、
SpringCloud
Stream 消息驱动16、...
赞
踩
article
一款基于
SpringCloud
开发的
AI
聊天
机器人
系统,已对接
GPT
-
4.0
,非常强大_gtp人...
一个基于
SpringCloud
的Chatgpt
机器人
,已对接
GPT
-3.5、
GPT
-
4.0
、百度文心一言、stable ...
赞
踩
article
SpringCloud
Alibaba
_
spring
cloud
alibaba
开发...
前言Spring Cloud
Alibaba
致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需...
赞
踩
article
Java
最新
Spring
Cloud
Alibaba进阶之路:
Sentinel
+
Nacos
持久化,字...
以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的。_springc...
赞
踩
article
SpringCloud
学习
笔记
—— 五、
Eureka
服务
注册
与发现_
服务
注册
到
eureka
...
SpringCloud
学习
笔记
—— 五、
Eureka
服务
注册
与发现_
服务
注册
到
eureka
服务
注册
到
eureka
...
赞
踩
article
SpringCloud
(第五章
Eureka
服务
注册
与发现)_
eureka
.
instance
.hos...
文章目录一、
Eureka
基础知识二、单机
Eureka
构建步骤三、集群Eurake构建步骤四、actuator微
服务
信息完...
赞
踩
article
SpringCloud-服务注册与发现-
Eureka
_
spring
-
cloud
-
netflix
-eu...
主要针对SpringCloud-服务注册与发现-
Eureka
的搭建_
spring
-
cloud
-
netflix
-eurek...
赞
踩
article
2024
年
Java
最全【
springcloud
】
eureka
服务
治理入门
,
五年
Java
开发者
小米、阿...
现在其实从大厂招聘需求可见
,
在招聘要求上有高并发经验优先
,
包括很多朋友之前都是做传统行业或者外包项目
,
一直在小公司
,
技术...
赞
踩
article
SpringCloud
+
Eureka
...
1.搭建注册中心--Euraka 1-1 pom文件
[详细]
-->
赞
踩
article
SpringCloud
-
Eureka
【
server
服务高可用
搭建
】
_
eureka
server
版本...
手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友《互...
赞
踩
article
SpringCloud-
Ribbon
_
spring
-cloud-
starter
-
netflix
-eu...
spring
-cloud-
starter
-
netflix
-
eureka
-
client
3.0以上默认不再集成
Ribbon
...
赞
踩
article
基于
java
web+
springboot
的医院
管理系统
(
java
+
Springboot
+ssm+my...
基于
java
web+
springboot
的医院
管理系统
(
java
+
Springboot
+ssm+
mysql
+
maven
)...
赞
踩
article
VMware
Workstation
Pro
17
虚拟机
超级详细搭建(含
redis
,
nacos
,do...
今天从零搭建一下
虚拟机
的环境,把
nacos
,
redis
等微服务组件还有数据库搭建到里面,首先看到的是我们最开始下载VMw...
赞
踩
article
SpringCloud
Alibaba
Sentinel
基础入门与
安装
...
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。
Sentinel
是面向分布式、多语言异构化服务架构的流量治理组...
赞
踩
article
SpringCloud
Alibaba
-
Sentinel
篇_
sentinel
官网...
Sentinel
是阿里巴巴开源的一款微服务流量治理组件,主要以流量为切入点,从流量限流、熔断降级、系统负载保护等多个维度...
赞
踩
相关标签
springboot多环境
springboot配置多环境
springboot多环境管理
nacos配置多环境管理
nacos配置多环境
springboot多环境切换
经验分享
spring cloud
mybatis
tdengine
mysql
spring boot
java
redis
数据库
微服务
Kubernetes
devops
CI/CD
jenkins
eureka
ribbon
spring
springcloud
人工智能