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,等限流

相关内容

热门资讯

cad打印线条粗细设置 cad... 004-线型(下)打印样式设置和线型文件使用一、线宽设置方法制图规范里边的线宽要求,我们已经定义好,...
荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...