削峰、限流与防刷

削峰(大闸)限流(限流器+队列)方案

为了承载高并发,就要用到一些技术组合,这里记录下削峰限流组合的方案流程。

下单前先去验证下,目的是交易是为了让有权限的人来交易,而一下子来了1000人,结果只有100人有权限,如果让这1000人都先去交易再看有权限没有,就会很浪费性能。因此可以提前筛选下,让验证通过的直接交易就可以了。

所以现在削减流量的环节就可以放在验证上了,大致流程如下:

  1. 用户验证后就会获得一个令牌,有这个令牌就可以交易。
  2. 但是令牌的发放量也得有限制。因为有权限的人肯定比可交易量大,所以令牌就限制为可交易量大小。即有10000人,有1000人权限,但库存只有100,就只发放100个令牌去让那1000人抢。
  3. 所以现在需要一个大闸(就是一个参数)来限制令牌发放量,每发放一个令牌,大闸就减一,减到0就不发放令牌了。
  4. 但如果本来库存就很多,有100万的库存,这时如果发放100万个令牌,并发量也很大。所以这时候就需要一个限流器来限制单机的TPS(比如一个服务器只能承受1万的并发,由于 Nginx 是随机分发流量的,一下子发了5万的请求给它,服务器就会一下就崩了)。
  5. 为了完美发挥服务器的性能,限流器的值一般设置在最高并发量左右。但如果这时请求都去交易会产生一个阻塞,那么交易环节就变慢了,这时不理想的。所以就需要一个队列(就是线程池)来缓冲下请求到交易的环节。

那么还能不能在验证前再限制下呢?可以的,我这里就记录了下使用验证码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值