如何设计一个秒杀系统

关于秒杀系统,可以从以下几个方面设计:

前端

1、nginx负载均衡,将请求分发到各个服务器,减轻压力。
2、js、css压缩,减少流量以及请求次数。
3、cdn加速。

缓存

1、采用redis缓存,可以提前将某些秒杀的数据加载到缓存。如库存先加载到缓存,判断缓存里的库存,成功后再继续,同时为了防止大量访问redis,可以用共享变量标识是否卖完,如卖完了,则直接返回,不用访问redis。
2、页面缓存,即将页面直接缓存到redis,或者页面静态化,即前后端分离。
3、开启浏览器缓存。

限流

1、使用消息队列,例rabbitmq进行消峰。
2、利用验证码防止恶意刷单,可以有效降低单位时间内访问次数。
3、地址隐藏,防止知道地址后提前购买以及多刷。
4、一定时间内限制url访问次数。

数据库

1、利用行级锁,先扣库存,成功后再创建订单,防止超卖。
2、唯一索引,防止重复购买。
3、数据库读写分离,如mycat。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (1)什么是秒杀: 秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些...
    九点四十阅读 578评论 0 3
  • 转自:http://developer.51cto.com/art/201601/503511.htm 1 秒杀业...
    人在码途阅读 1,794评论 0 6
  • 1 秒杀业务分析# 正常电子商务流程 (1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;...
    七寸知架构阅读 15,808评论 12 197
  • 人的心就像一台发动机:她一动,全身就得跟着动。所以心烦意乱的时候,身体也没有办法安静下来,就只能努力的跟着头脑中的...
    Kayan阿嘉阅读 1,150评论 1 27
  • 光棍节的时候,朋友介绍他认识了她。 他对她一见钟情,她却对他说:“我不可能喜欢你的。” 但他还是决定追她。 知道她...
    木水清阳阅读 235评论 0 1