秒杀系统如何设计

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

秒杀场景:

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

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

思路如下:

1、前端控制   

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

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

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

3、用户频率限制

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

4、令牌策略

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

5、数据库乐观锁

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

 

 

 

 

posted @ 2018-03-23 08:37  架构师肖邦  阅读(257)  评论(1编辑  收藏  举报