秒杀系统如何设计

近来听到关于秒杀的话题,想起N年前去某当面试,好像有类似设计题,觉得挺有意思,整理了下,供大家临时应急使用!

秒杀场景:

10W真实用户参与秒杀,仅有100人可以成功购买商品。

考虑到码农的特殊手段,接口流量咱们按20W去算.

思路如下:

1、前端控制   

技术控制,置灰按钮、防止重复提交   

2、后端负载均衡、分散流量

单机理论极限并发约6W,20W流量需要4台服务,去分散流量

3、用户频率限制

用户手脚不停的刷商品,在一段时间内,同一用户会有多次请求,可以用通过redis来过滤

4、令牌策略

可以令牌桶或MQ来过滤数据,拿到令牌的可以去购买,减轻DB压力

5、数据库乐观锁

满足条件的才可以成功购买商品

 

 

版权声明:本文版权归作者java潇邦和博客园和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/sunrisexq/p/8628305.html