线上商城的抢购、秒杀设计简析
在接手现有线上商城时,发现存在问题很多,如架构上各个业务模块未实现服务化、关键代码未使用缓存系统、扩展性弱、后台管理与商城前端未分离等,今天简单讲下关于下单和库存操作的思路逻辑。
1、原则
不能整个系统宕机。
即使系统故障,也不要将错误数据展示出来。
尽量保持公平公正。
2、实现效果
秒杀开始前,抢购按钮为-活动 即将开售。
秒杀开始时,抢购按钮可以点击下单。
秒杀结束后,按钮按钮变成 已售罄。
3、技术难点
访问量集中登录和首页下单,图片存贮需迁移到阿里云OSS,并实现CDN加速。
短时间内的大访问量对现有网站业务造成的冲击。
秒杀是一个网站营销的一个附加活动,时间短,并发量大。
如果和网站原有应用部署在一起,必然会对现有业务造成冲击,稍有不慎可能导致整个网站瘫痪。
高并发下对服务器数据库造成的极大负载压力。
用户秒杀开始前,通过不断刷新浏览器来保证不会错过秒杀活动。
频繁的访问程序、数据库会对应用服务器和数据库服务器造成负载压力。
网络带宽的问题比超过平时好多倍。
如果秒杀页面的大小为200K,如果最大并发数为10000次,那么需要的网络和服务器带宽是2G(200K×10000)。
这些网络带宽是因为秒杀活动新增的,超过网站平时使用的带宽。
避免直接下单。
秒杀的游戏规则是到了秒杀才能开始对商品下单购买,在此时间点之前,只能浏览信息不可下单。
而下单页面也是一