1.初始化限流器的时候就会初始化令牌桶(初始化令牌n个);2令牌生成器要周期向令牌桶添加令牌;这两个条件必须满足
限流器会截获客户端向服务端发送的请求,有令牌就往业务组件走
漏桶算法:
两个前提:1.每秒露出10滴水,即业务组件每秒处理10个请求;2注水时,水满则溢
请求加到同里不是立马给业务组件,必须等前面请求出完
区别:漏桶的业务组件承担的压力是恒定的,业务组件很稳
令牌桶的业务组件有可能出现高峰期和低峰期,比如很久没有请求进来,那么令牌桶就满了,如果突然大量请求冲进来获取所有令牌,此时业务组件就处于高峰期。
我们的秒杀是用的令牌桶。
首先用大闸限制住令牌的数量,如果令牌数目本来就很大,再用限流器限制住单机的TPS,再利用队列来增加缓冲能力,队列相当于线程池。
每个商品的大闸不一样,因为库存不一样,一般大闸的值限制是库存的5倍or10倍
加验证码是为了在请求验证之前平滑流量1s到Ns。