写点什么

架构师训练营第九周作业 1

用户头像
韩儿
关注
发布于: 2020 年 12 月 20 日

设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?

设计一个秒杀系统,主要的挑战和问题是秒杀时候,高并发会容易导致网络带宽耗尽,服务器 load 飙高,停止响应,数据库瘫痪。从而会导致网站不可用。同时,如果系统设计不够完善,还容易被人钻空子,在秒杀开始之前就已经可以完成下单操作。如果在现有的网站上来增加秒杀功能,短时间内要让系统扩容几十甚至上百倍,在技术和资金上面都是非常困难的事情。


对于短时间要实现的秒杀系统,可以重新建立一个系统,专门负责秒杀功能,从而达到和原有系统隔离开来,出问题不会影响到原有系统。对于一个秒杀系统,高并发只是出现在秒杀商品列表和商品介绍两个页面,对于填写订单和支付则人数不会很多,完全可以利用之前的系统来实现填写订单与支付功能。所以分析下来,只要新建的秒杀系统能够应付高并发的商品列表和商品介绍即可。为到达这个目的,采取的方案包括:

静态化:采用 JS 自动更新技术将动态页面转化为静态页面。去掉所有动态数据库查询。

并发控制,设计阀门,只放最前面的一部分人进入秒杀系统。

简化流程,砍掉不重要的分支。

前端优化,提升页面响应速度。

同时,系统的各个部分进行调优。例如 webserver,tomcat,优化静态页面,采用 CDN 缓冲和反向代理,加速核心页面。


用户头像

韩儿

关注

还未添加个人签名 2020.03.08 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第九周作业1