加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

高并发下的流量控制

发布时间:2021-03-12 17:42:18 所属栏目:动态 来源:互联网
导读:计数器限流算法也是比较常用的,主要用来限制总并发数。比如限流 qps 为 100,算法的实现思路就是从第一个请求进来开始计时,在接下去的 1s 内,每来一个请求,就把计数加 1 ,如果累加的数字达到了 100 ,那么后续的请求就会被全部拒绝。等到 1s 结束后,把

计数器限流算法也是比较常用的,主要用来限制总并发数。比如限流 qps 为 100,算法的实现思路就是从第一个请求进来开始计时,在接下去的 1s 内,每来一个请求,就把计数加 1 ,如果累加的数字达到了 100 ,那么后续的请求就会被全部拒绝。等到 1s 结束后,把计数恢复成 0 ,重新开始计数。

这种实现方式有一个弊端:如果我在单位时间 1s 内的前 10ms ,已经通过了 100个请求,那后面的 990ms ,只能眼巴巴的把请求拒绝,这种现象称为 突刺现象。

漏桶

为了消除 突刺现象,可以采用漏桶算法实现限流,漏桶算法这个名字就很形象,算法内部有一个容器,类似生活用到的漏斗,当请求进来时,相当于水倒入漏斗,然后从下端小口慢慢匀速的流出。不管上面流量多大,下面流出的速度始终保持不变。

不管服务调用方多么不稳定,通过漏桶算法进行限流,每 10 毫秒处理一次请求。因为处理的速度是固定的,请求进来的速度是未知的,可能突然进来很多请求,没来得及处理的请求就先放在桶里,既然是个桶,肯定是有容量上限,如果桶满了,那么新进来的请求就丢弃。

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读