hjr-微服务(八):如何做限流
创始人
2025-05-29 08:05:16

什么是限流

我们要把A池子的水转到B池子,如何控制水平稳的从A池子进入B池子就是限流

算法

首先需要了解两个算法

令牌桶算法

系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处
理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。

类似

把A的水接入到一个固定流速的水龙头里,控制水龙头的流速,流入到B池子就是令牌桶算法,从入口处限流。

漏桶算法

把A的池子全都倒入一个大桶,在桶底部加个漏斗就是漏桶算法,从出口处限流

时间窗口

所谓的滑动时间算法指的是以当前时间为截止时间,往前取一定的时间,比如往前取 60s 的时间,在这 60s 之内运行最大的访问数为 100,此时算法的执行逻辑为,先清除 60s 之前的所有请求记录,再计算当前集合内请求数量是否大于设定的最大请求数 100,如果大于则执行限流拒绝策略,否则插入本次请求记录并返回可以正常执行的标识给客户端

把A和B池子之间接一个固定长度为60米的水管,水管直径限制为100,水管满了就拒绝继续注入水

区别

漏桶算法能够强行限制数据的传输速率。保护B池子,超出漏斗的会被丢弃,因此不允许某种程度的突发传输。

令牌桶算法能够在限制数据的平均传输速率的同时还允许某种程度的突发传输。保护A池子。

具体手段

1、验证码、IP 黑名单

2、Tomcat控制最大线程数、Nginx控制速率与并发请求数,网关控制最大连接数

3、利用上面的 三种算法 使用 熔断器,服务降级,消息队列Kafka,等限流

相关内容

热门资讯

阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
重庆属于哪个省份的 重庆在中国... 重庆有多大,大到超出我们的想象,重庆作为我国4个直辖市之一,印象里应该跟京津沪面积差不多,可事实上却...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...