秒杀系统架构讲解
今天我们一起来看看,一套秒杀系统在架构设计上需要有哪些考量: 秒杀场景的特点 系统隔离的设计思路 客户端设计 代理层设计 应用层设计 数据库设计 压力测试 总结 秒杀场景的特点 秒杀场景是电商网站定期举办的活动,这个活动有明确的开始和结束时间,而且参与互动的商品是事先定义好了,参与秒杀商品的个数也是有限制的。同时会提供一个秒杀的入口,让用户通过这个入口进行抢购。 总结一下秒杀场景的特点: 定时开始,秒杀时大量用户会在同一时间,抢购同一商品,网站瞬时流量激增。 库存有限,秒杀下单数量远远大于库存数量,只有少部分用户能够秒杀成功。 操作可靠,秒杀业务流程比较简单,一般就是下订单减库存。库存就是用户争夺的“资源”,实际被消费的“资源”不能超过计划要售出的“资源”,也就是不能被“超卖”。 系统隔离的设计思路 在分析秒杀的特点后,我们发现秒杀活动是有计划的,并且在短时间内会爆发大量的请求。为了不影响现有的业务系统的正常运行,我们需要把它和现有的系统做隔离。 即使秒杀活动出现问题也不会影响现有的系统。隔离的设计思路可以从三个维度来思考。 业务隔离 技术隔离 数据库隔离 业务隔离 既然秒杀是一场活动,那它一定和常规的业务不同,我们可以把它当成一个单独的项目来看。在活动开始之前,最好设计一个“热场”。 “热场”的形式多种多样,例如:分享活动领优惠券,领秒杀名额等等。“热场”的形式不重要