自从武汉发生新型冠状型肺炎以来,口罩是供不应求;各地政府为了保障居民可以正常购买使用口罩,陆续开通网上预约口罩。

即使有政府特供口罩,很多人还是预约不了口罩,真是一罩难求。下面从技术研发角度来分析抢不到的原因,根据预约操作分解系统功能情况。


业务规则:

     我所在地区口罩预约规则:

1,每天晚上7点开始预约。

2,每天口罩数量10万个。

3,每个人每周只能预约成功一次,每次购买5个口罩。

4,预约成功在规定时间支付,预约才生效(刚开始货到支付,后面升级网上支付)。

    根据规则特性,我们可以把口罩预约系统看成是电商秒杀系统;比如小米手机抢购系统,京东秒杀。

    秒杀系统在流量暴增的时候为了保障系统可用性;会进行限流,限制用户请求流量。

现实世界限流场景常见的有春节乘坐火车,高峰期地铁;上下班高峰期走地铁限流是这样的:

    上午8:00时:1万人到地铁口坐地铁,地铁里面只能容纳4000人;6000人地铁口外面等着。

    上午8:05时:地铁里面来了一辆车;车只能承载2000人,还2000人车站继续排队;地铁口继续2000人进来排队。

如下图示:

spacer.gif为什么你预约不了政府特供口罩-太难了_第1张图片

 回到口罩预约系统,限流策略大致是这样的:

    1,晚上19:00时:30万用户点击预约购买请求,而系统LB最多连接数2万,就会有28万不能正常处理。

    2,2万个用户进入到,信息确认页面;新增个人信息api,最多只能处理5000个并发,有1.5万不能正常处理。

系统限制流程图大致如下图示:

spacer.gif为什么你预约不了政府特供口罩-太难了_第2张图片

下面根据操作提示分析系统功能:

“当前人数较多...”:大致是在网关层限制了。

“预约现场有点拥挤...”:大致是API层限制了。

spacer.gifspacer.gif为什么你预约不了政府特供口罩-太难了_第3张图片

    "已在排队中":是已经把个人信息提交成功。

    预约结果不及时显示是因为:系统要做用户身份信息校验,是否还有预约权限;

    结果不及时:还可以校验库存,避免超卖。

    根据官方数据:虽然我所在的城市第一天预约口罩就超卖了;但是数量很小,影响有限;如果超卖数据很多,估计第二天很多预约成功的用户都收不到口罩,空欢喜一场。

为什么你预约不了政府特供口罩-太难了_第4张图片

本市口罩预约系统评价:

     从2月7日上线测试功能,到2月12号升级网上在线支付;整个效率还是很高的;做为中国互联网研发的一份子;这个系统如果交给我所在的团队,从产品原型,ui设计,开发,测试各环节完成;未必有这么快完成上线;估计得加不少班。给研发这个系统同行点一个赞。

     回答一下文章标题:无非是手速,耐心,库存问题。

     愿大家都能买到口罩;愿企业早日复工,愿疫情早日结束。

参考信息:

开通预约说明:

https://mp.weixin.qq.com/s/FxaMTiSRo5_JCLDCTOpleQ

第一天预约数据:

https://mp.weixin.qq.com/s/XMkpDG-b9YRLT0OFld_q_A

开通网上支付:

https://mp.weixin.qq.com/s/N69PHqt07CymWScq5dmbWQ

作者介绍:

      一线互联网研发leader,喜欢分享交流一线技术落地经验。欢迎关注公众号:

为什么你预约不了政府特供口罩-太难了_第5张图片