设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

发布时间:2020-03-07 05:42 所属栏目:117 来源:站长网
导读:①如何避免超卖?如果在 Redis 中扣减库存,可以利用 decr 命令扣减库存,decr 是原子操作,在分布式环境下也不会有并发问题,decr 扣减库存后,判断返回值,如果返回值小于 0,扣减库存失败,秒杀也就失败了。 如果

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

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

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

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

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

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

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

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

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读