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

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

发布时间:2020-03-07 05:42 所属栏目:117 来源:站长网
导读:这样我们就能提前知道哪些商家哪些商品要参与秒杀,可以根据提报的商品提前生成静态页面并上传到 CDN 预热,提报的商品库存也需要提前预热,可以将商品库存在活动开始前预热到 Redis,避免秒杀开始后大量的缓存穿透

这样我们就能提前知道哪些商家哪些商品要参与秒杀,可以根据提报的商品提前生成静态页面并上传到 CDN 预热,提报的商品库存也需要提前预热,可以将商品库存在活动开始前预热到 Redis,避免秒杀开始后大量的缓存穿透。

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

部署隔离

秒杀相关服务和日常服务要分组部署,不能因为秒杀出问题影响日常售卖业务。

可以申请单独的秒杀域名,从网络入口层就开始分流。网关也单独部署,秒杀走自己单独的网关,从而避免日常网关受到影响。

秒杀可以复用订单,库存,支付等日常服务,只是需要一些小的改造(比如下单流程走消息队列,批量写入订单库,以及在 Redis 中扣减库存)。

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

数据隔离

为了避免秒杀活动影响到日常售卖业务,Redis 缓存需要单独部署,甚至数据库也需要单独部署!数据隔离后,秒杀剩余的库存怎么办?

秒杀活动结束后,剩余库存可以归还到日常库存继续做为普通商品售卖。数据隔离后,秒杀订单和日常订单不在相同的数据库,之后的订单查询怎么展示?

可以在创建秒杀订单后发消息到消息队列,日常订单服务采取拉的方式消费消息。

这时日常订单服务是主动方,可以采用线程池的方式,根据机器的性能来增加或缩小线程池的大小,控制拉取消息的速度,来控制订单数据库的写入压力。

网络

秒杀前要和网络运营商、CDN 服务商提前申请带宽。

还有哪些细节要考虑:

(编辑:ASP站长网)

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