`

对微服务限流的理解

阅读更多
首先说下为啥会有限流:

比如说:双11,全民购物狂欢节,虽然我们买东西可开心了,但是会有一个问题. 比如说淘宝服务本来只能支持 10 个人同时访问,但是在有 10000 个人同时访问了,这就会导致系统资源耗尽,最终服务崩掉.

限流的目的是为了控制访问的流量. 比如说它支持10人访问,那么我就控制每次只有10个人访问.

限流的策略:

1.令牌桶:

首先这个桶是有容量的,比如说10.然后每秒钟向桶中放 x 个令牌,当放入的令牌总数 > 桶的容量时,则溢出.(拒绝服务). 每次请求来了,需要先去桶中获取一个令牌才能执行(消费令牌).这样就能控制访问的数量了.
可以理解为生产者-消费者模式. 有一个库存存放生产者生产的东西,消费者从库存中拿东西.

2.漏桶法:

这个桶的容量也是10,但是这个桶下面有一个小孔,按照一定速度消耗. 请求来了就,就进入到桶中,如果说请求突然来了好多,但是下面的孔又很小的话,就会产生溢出(拒绝服务).

两种方法的比较:

漏桶法无法对网络中突然产生的一大波流量进行处理,令牌桶法可以在一定范围内对一大波流量进行处理.

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics