基于分布式环境下限流系统的设计1.docx

PAGE 3 基于分布式环境下限流系统的设计 前提 业务背景 就拿前些天的双十一的 “抢券活动” 来说,一般是设置整点开始抢的,你想想,淘宝的用户群体非常大,可以达到亿级别,而服务接口每秒能处理的量是有限的,那么这个时候问题就会出现,我们如何通过程序来控制用户抢券呢,于是就必须加上这个限流功能了。 生产环境 1. 服务接口所能提供的服务上限(limit)假如是 500次/s 2. 用户请求接口的次数未知,QPS可能达到 800次/s,1000次/s,或者更高 3. 当服务接口的访问频率超过 500次/s,超过的量将拒绝服务,多出的信息将会丢失 4. 线上环境是多节点部署的,但是调用的是同一个服务接口 于是,为了保证服务的可用性,就要对服务接口调用的速率进行限制(接口限流)。 什么是限流? 限流是对系统的出入流量进行控制,防止大流量出入,导致资源不足,系统不稳定。 限流系统是对资源访问的控制组件,控制主要的两个功能:限流策略和熔断策略,对于熔断策略,不同的系统有不同的熔断策略诉求,有的系统希望直接拒绝、有的系统希望排队等待、有的系统希望服务降级、有的系统会定制自己的熔断策略,这里只针对限流策略这个功能做详细的设计。 限流算法 1、限制瞬时并发数 Guava RateLimiter 提供了令牌桶算法实现:平滑突发限流(SmoothBursty)和平滑预热限流(Sm

文档评论(0)

1亿VIP精品文档

相关文档