电流限制是什么意思(向你展示什么是电流限制)
我之前读书的时候没接触过高并发/大流量这种东西,所以当然没接触过限流 。看公司项目的时候发现用了费率限制器,可以了解一下 。
一、限流基础知识介绍为什么要限制电流?相信不用我多说 。
比如周末去餐厅吃饭,但是人太多了,只能在前台取个号,号到我这里才能进餐厅 。酒店没有限流怎么办?饭到了,大家都冲进去,酒店处理不了这么多人,很容易出事 。酒店工作人员崩溃处理不了)
回到代码世界,情况也是如此 。服务器可以处理的请求数量是有限的 。如果请求的数量非常大,我们需要限制电流(要么让请求等待,要么丢弃它们) 。
在代码领域,有两种常见的限流算法:
令牌桶算法
漏桶
1.1什么是漏桶?
举个例子,现在我有一个水桶,绿色的是我能装水的容量 。如果我往桶里倒的水比我能装的多,桶就会溢出来(限流):
目前我们能知道的是:
水桶的容量是固定的(图中绿色的) 。
如果超过桶的容量,就会溢出(要么等着,要么扔掉) 。
【带你了解什么是限流 限流是什么意思】好了,现在让我们在水桶上挖一个洞,这样水就可以从洞里流出来了:
水桶上的孔的大小是固定的,所以水从孔中流出的速度也是固定的 。
所以综上所述,算法只需要两个参数:
腹部容积
漏水率
漏桶有两种实现方式:
不允许突然流动:如果流入速率大于流出速率,直接丢弃多余的水 。举个例子,我的水桶容量可以装100L,但是我的水桶流出速率是10 L/s,此时,如果现在有100L/s的水进来,我就只让10 L的水进桶,其余的都受到限制 。(请求的速度是有限的)
允许的突发流量情况:我的水桶能装100L 。如果我的水桶现在是空,那100L的水都可以进我的水桶了 。我会以10L/s的速度把水流出去,如果还有100L的水进来,那就只能限制了 。
经过以上分析,我们知道:
漏桶可以平滑网络上的突发流量(因为漏水率是固定的) 。
1.2什么是令牌桶算法?
现在我又多了一桶 。这个桶不是用来装水的,而是用来装代币的:
代币会以一定的速度扔进桶里 。例如,我在一秒钟内向桶里扔10个代币:
推荐阅读
- 居然有GM巡查 gm是什么意思
- 尊重某人叫青睐或者垂青 青睐是什么意思
- 王者荣耀角色转移该注意什么问题-角色转移测试注意事项
- lol7月幸运召唤师活动什么时候开始 2018年7月幸运召唤师开启时间一览
- 韩信偷鲲是什么意思-韩信偷鲲是什么梗
- 【健康知识】吃车厘子不宜吃什么 车厘子可以吃多吗
- 【养生知识】炖好的燕窝可以放冰箱多久 燕窝什么时候吃最好
- 【养生常识】可乐放冰箱多久不能喝 可乐放冰箱有什么危害
- 【养生知识】隔夜啤酒能喝吗 隔夜的啤酒能做什么
- 【养生常识】正常人吃什么盐好 什么样的食用盐对身体最好