Table of Contents
四、全能应用层限流:Sentinel kill Hystrix
限流原理
在高并发系统中,我们常常提到的几个词汇“缓存”,“限流”,“降级”等。本文涉及到的是其中“限流”的部分,顾名思义,限流是一种限制流量的手段(我们可以粗粒度地理解为,限制请求的数量或者速度)。
在限流特技中,常见的限流算法有两种:
1)令牌桶算法;
2)漏桶算法;
当然,我们也可以粗暴地采用计数器的方式来进行限流。
一、令牌桶算法
如图所示:
1、桶里每秒钟会产生十个令牌,当然令牌总数不能超过桶的最大容量。
1)令牌产生的速度是均匀的,也就是说系统能够接收的请求是均匀的,比如每秒钟接收10个请求。
2)令牌桶表示请求的容纳范围,比如0 - 100个请求。
2、发起一个请求,如果桶里面有足够的令牌,那么该请求就能够被处理(同时删除桶里面的一个令牌),否则被丢弃或者缓存。
1)令牌产生的速度是均匀的,所以接收的请求是均匀的,但是被处理的请求却不一定均匀。比如,令牌桶里面有60个令牌,当前这秒钟有60个请求进来,这时候就会瞬间要处理60个请求。而不是每秒10个请