加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

糟糕,老板让我设计一个亿级用户秒杀系统!

发布时间:2020-03-07 06:37:57 所属栏目:Windows 来源:站长网
导读:副标题#e# 个人从事电商行业十几年,经历过大大小小的促销活动和秒杀上百次,每次做秒杀瞬时访问量会翻数十倍,甚至数百倍。对系统架构是巨大的考验,期间也曾经历过系统宕机,甚至整体雪崩。 图片来自 Pexels 那么我们怎么设计秒杀系统,才能保证秒杀系统

①如何避免超卖?如果在 Redis 中扣减库存,可以利用 decr 命令扣减库存,decr 是原子操作,在分布式环境下也不会有并发问题,decr 扣减库存后,判断返回值,如果返回值小于 0,扣减库存失败,秒杀也就失败了。

如果在数据库中扣减库存可以在 where 后面加上库存大于 0 的条件,来避免库存被减成负值。这样就可以避免超卖情况发生了。

②接口防刷,前面已经提到过,在网关层对下单等接口按 userID 限流。

③网关层除了对 userID 做限流外,还要做整体限流。在实际访问量超过预估访问量时,整体限流可以起到保护作用,避免系统被压垮。

④防止重复下单,按 userID 限流已经起到了防止重复下单的作用。假如限制同一个用户 10 分钟能下一次单,一般情况下 10 分钟内,商品早已经被抢光了,用户也就没有再次下单的机会了。

⑤可以结合风控系统,在网关层把羊毛党等有问题的用户请求直接拒掉。

⑥可以在网关层上面再加一层防火墙或者高防服务,来防御 DDos 等分布式网络攻击。

糟糕,老板让我设计一个亿级用户秒杀系统!

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!