如何设计一个秒杀系统

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

前端

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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值