架构师之路八分布式系统下大流量限流与消峰的方案

前面架构师之路1到4个章节简述了架构师所具备的思考维度,关键能力,设计图,以及架构设计五视图等常用的思考方案与必备能力。5到7,3个章节演示了具体的秒杀系统,分布式理论研究,以及dubbo的失败重试与链路追踪机制;

在提到具体的解决方案的时候,我们需要了解2个算法,一个是令牌桶算法,一个是漏桶算法;令牌桶算法: 就是限制平均流入速率,假如令牌桶内放置10个令牌,每次拿走1个令牌,但同时也支持突发流量进入,一次拿走5个令牌,桶内如果没有令牌,则后续等待的任务直接废弃; 漏桶算法: 是限制流出速率;因为桶内的流水是恒定的,只管流出的速率


第一种方案: Guava方案

其底层使用的是令牌桶算法,在引入guava依赖后,我们假设先往桶内放置5个令牌
使用 final RateLimiter limiter = RateLimiter.create(5)
使用limiter.acquire(),从桶内获取一个令牌,当然也支持
limiter.acquire(5),直接从桶内获取5个令牌,主要是应对突发流量
假设桶内没有令牌,我们也可以使用limiter.tryAcquire()尝试从桶内获取,当然如果此时仍然没有令牌,我们也可以,使用limiter.tryAcquire(5,毫秒)再次获取


第二种方案: nginx

此种方案处理http请求,当请求过来的时候,我们直接设置limit-req-zone,设置每秒IP允许发起的请求数;
l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值