阅读心得7:《秒杀系统架构分析与实战》
本周阅读了老师推荐阅读的公众号:架构师中的推文《秒杀系统架构分析与实战》,感想如下:
秒杀系统,在我们r日常生活中常见,比如淘宝的每天的淘抢购,或者拼多多的拼购,以及双十一时3分内付款半价打折一类的,都是隶属于秒杀系统。
通过阅读本篇文章可知,秒杀系统架构设计与实现,首先要考虑的问题便是高并发量,这一点我在软件测试时深有体会,通过loadrunner的性能测试,可知,我自己所编写的javaweb项目最多支持6个用户同时访问数据库,进行增删改查等操作,6个用户已是极限。而秒杀系统,秒杀系统又称闪购系统,英文Flash sale,起源于法国网站Vente Privée。闪购模式即是以互联网为媒介的B2C电子零售交易活动,以限时特卖的形式,定期定时推出国际知名品牌的商品,一般以原价1-5折的价格供专属会员限时抢购,每次特卖时间持续5-10天不等,先到先买,限时限量,售完即止。顾客在指定时间内(一般为20分钟)必须付款,否则商品会重新放到待销售商品的行列里。
这就要求我的系统架构在设计时,第一个处理的问题就是面对如此多的用户并发同时访问,大家都知道,12306在刚刚上线时,出现的软件崩溃现象,而导致崩溃的原因不是因为软件不合格不达标,我国14亿人口,铁路承担了绝大部分运输工作,而假设春运时期同时每天有两亿人乘火车出行,假设有一半的人使用12306app进行购票出行,而这就要求系统能成承担的起1亿人同时买票,这还不算刷新等情况,试问那个软件遇到这种情况能不崩溃?
所以,秒杀系统的架构正如文章所提到:
秒杀系统为秒杀而设计,不同于一般的网购行为,参与秒杀活动的用户更关心的是如何能快速刷新商品页面,在秒杀开始的时候抢先进入下单页面,而不是商品详情等用户体验细节,因此秒杀系统的页面设计应尽可能简单。
商品页面中的购买按钮只有在秒杀活动开始的时候才变亮,在此之前及秒杀商品卖出后,该按钮都是灰色的,不可以点击。
下单表单也尽可能简单,购买数量只能是一个且不可以修改,送货地址和付款方式都使用用户默认设置,没有默认也可以不填,允许等订单提交后修改;只有第一个提交的订单发送给网站的订单子系统,其余用户提交订单后只能看到秒杀结束页面。
要做一个这样的秒杀系统,业务会分为两个阶段,第一个阶段是秒杀开始前某个时间到秒杀开始, 这个阶段可以称之为准备阶段,用户在准备阶段等待秒杀; 第二个阶段就是秒杀开始到所有参与秒杀的用户获得秒杀结果, 这个就称为秒杀阶段。
通过阅读本篇文章,现在我们知道,电商系统所要面对的高并发压力,远高于人们的想象。特别是双十一零点的抢购,绝对是比春节微信红包更严峻的考验。电商面对的都是实际的交易,容错率同样很低,而且会在零点面临极高的流量峰值。电商系统见招拆招,发展到今天,也有了充足的技术储备及实战经验。
总结,分而治之,还是解决一切问题的通用法宝,我现在应该努力提升自身,在编程时不能像以前那样只为了实现功能,不去考虑这个个程序在现实中的实际情况,比如多用户访问等。
文章地址:
https://mp.weixin.qq.com/s?__biz=MzAxNTY1NjQzMA==&mid=401277709&idx=3&sn=cae57ddab69bea54f08430278072164c&scene=21#wechat_redirect