一种简易站点访问流控策略的设计

Posted XiaoYNil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一种简易站点访问流控策略的设计相关的知识,希望对你有一定的参考价值。

问题引入

现有这样一种网站访问限制和需求:

1、站点对请求流量要求单个IP每秒只能进行m次请求,否则会丢出HTTP XXX错误码,

2、站点上有n个url需要不定时访问,且对于每个url x,其刷新延时为li,该值在程序生命周期内为变量,

要求设计一种访问延时策略,提高m次请求的利用率

 

分析

显然,当n/m小于所有li时,那么每一个请求延时只要满足li,都可以保证不会触碰到服务器的访问策略极限;

但是,当一部分li小于n/m时,就比较麻烦,

因此,假设每个请求优先级为rank,设计一种方案,将低优先级(rank值大)的请求让位给高优先级(rank值小)的请求,

故每个请求实际延时为(基于简单的线性权重函数,可以替换为复杂的priority(i)):

T为调控因子,求T的值为多少,能保证极端情况(所有的li=0)时期望值不超过n/m,即可以保证不会触碰到服务器的访问策略极限

求解

显然,求解期望值:

以上是关于一种简易站点访问流控策略的设计的主要内容,如果未能解决你的问题,请参考以下文章

python 站点资源链接简易爬虫

高并发高性能下的 会员系统[同程艺龙] — 高可用架构设计实践

微服务学习五

微服务学习五

反压策略

反压策略