秒杀网站系统设计详解

最近总有一些朋友问高并发问题,后来就想自己把一个秒杀系统作为例子详细分解一下,也是一个学习过程。

首先假设场景,预计该活动可能有1万人参加,那最大并发数为1万。

主要面对的问题分析:

1.对原有业务的影响,秒杀类活动肯定属于附加的业务,如果和原有业务部署在一起,那就会对原有业务造成冲击。注意:哪怕和原有业务不部署在一起也会对原有的相关业务(接口、入口、出口等)产生一定的冲击。

2.高并发下的服务、数据库负载问题

3.带宽问题

4.直接下单问题(越过商品选择直接访问下单url)

解决方案

1.秒杀系统独立部署

2.秒杀商品页面静态化,必要的动态数据缓存处理

3.购买/租用临时带宽

4.动态生成随机下单页面URL

架构设计

1.分析用户心理,用户关心的刷新速度、快速下单,而不是复杂详细的商品详情。控制购买按钮在开始前不可用,准点变为可用。下单页面也应该尽可能的简洁,甚至可以不写地址直接付款下单,然后再修改地址(可选)。

2.秒杀按钮如何控制,因为商品页面静态化了并且做了cdn,如果通过接口控制对服务器压力会很大,所以可以选用前端js控制。在商品页面引入一个js文件,这个文件不被缓存和cdn,使用随机版本号。这个js文件包括活动是否开始的标记和随机下单的url参数。通过定时间来在活动开始的时间更新这个js文件

3.控制订单,两级控制,限制每台服务器接受订单数,验证总的订单数。

4.基本架构,商品服务器集群,CDN,JS服务器集群,订单服务器集群,定时服务器,全局计数器(memcache、redis等)、订单处理子系统(用来处理订单成功的后续逻辑)

 

转载于:https://my.oschina.net/haitaohu/blog/2250365

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值