流量控制策略(汇总)
来源:互联网 发布:山东网络作家协会 编辑:程序博客网 时间:2024/06/05 15:46
汇总常见的流量控制策略
一:策略名称 : 黑白名单策略
解释:在mcc中有一份黑名单和一份白名单,如果黑白名单限流开关打开,那么请求到达后,先判断是否在黑名单中,如果是,那么返回流控结果给业务方;
如果否,继续判断此用户是否在白名单中,如果是,那么返回不流控结果给业务方。否则继续进行后续的流控逻辑。
实现:mcc中存储黑白名单,本地通过callback方式缓存
二:策略名称:用户百分比
解释:基于用户身份标识+url,对用户的请求做流控。在mcc中存储要放过用户的百分比数值percentValue。请求到达后,取出用户的uuid,
并对uuid做哈希,再模100,得到userHashValue,和percentValue对比:
1.如果userHashValue>=percentValue,那么,判断此url是否是白名单接口:1.1 是——放过;1.2 否——直接返回流控结果;
2.如果userHashValue<percentValue,那么,继续进行后续的流控逻辑。
实现:mcc中存储百分比值,本地通过callback方式缓存
三:策略名称:限时等待策略
解释:本策略提供一种近似排队的策略,当用户第一次访问本策略的url时,拒绝本次请求,并以此作为时间轴原点,
在wait_time时间范围内不允许访问,直到访问时间落在serve_time范围内才允许访问。例:wait_time=5s,
serve_time=10s,则在0s~5s这段时间内不得访问,在5s~15s期间允许访问。
实现:需要借助缓存(Tair/Squirrel)存储key/value,每次请求需要读缓存
四:策略名称:限制频次
解释:本策略限制窗口时间内的访问频率,在window_time时间窗口内限制最多访问次数为frequency_times,
超过frequency_times次数的访问将被拒绝。例子:window_time=5s,frequency_times=20,则在5s时间窗内,
前20次访问放行,第21次以后的访问拒绝。
实现:需要借助缓存(Tair/Squirrel)存储key/value,每次请求需要写缓存
五:策略名称:url集群qps限制
解释:限制某一url的总体qps。不分用户,只根据url做限制
实现:需要借助缓存(Tair/Squirrel)存储key/value,每n次请求需要写缓存(n可配)
六:策略名称:单机限流策略
解释:本策略目前提供了2种本地限制方法:
1.限制单机接口粒度的访问qps:此策略限制了单台某接口每秒最高的访问次数,超过策略设置的
最高的QPS的访问则进行限流,对白名单以外的访问进行限制。 例:限制单机/index接口的qps为100
2.限制单机的访问qps:此策略限制了单台机器每秒最高的访问次数,超过策略设置的最高的
QPS的访问则进行限流,对白名单以外的访问进行限制。
例:某服务最高允许qps为10000/s,40台机器,则此策略的限流阈值应为250/s,此数据推算是建立在流量均衡的基础
上估算出来的,具体应用时应预留出合理的缓冲区间。
注意:QPS策略存在的意义在于,当整个业务的流量过大时,QPS策略能够保证核心业务的完成。
实现:使用Guava中的RateLimiter
后面会详细对六种策略的实现进一步分析:敬请关注
作者:乐杨俊
- 流量控制策略(汇总)
- 策略路由与流量控制相关资料
- iproute2 策略路由与流量控制笔记
- 网络传输流量控制策略小结
- iproute2 策略路由与流量控制笔记
- iproute2 策略路由与流量控制笔记
- 服务接口的流量控制策略之RateLimit
- linux流量控制(一)
- linux流量控制(二)
- linux流量控制(三)
- linux流量控制(四)
- linux流量控制(五)
- 流量控制
- 控制流量
- 流量控制
- 流量控制
- Mapreduce实例---流量汇总(自定义类)
- TC流量控制实现分析(初步)
- 深度学习小白——物体定位和检测
- 集合
- java使用jxl导出excel并单元格自适应
- 让menu同时显示图标和文字
- Java反射实例(实战方能理解jdk的各种方法)
- 流量控制策略(汇总)
- Android 开发 Tip 14 -- Singleton
- [ElasticSearch2.x]Filter之Cache
- MVVM模式的简单案例
- Spring不能直接@autowired注入Static变量
- svn的merge使用例子
- 安霸(ambarella) s2lm视频处理流程
- java多态
- easy 1 : 461. Hamming Distance