穗康小程序口罩预约前后端架构及产品设计

穗康小程序口罩预约前后端架构及产品设计

在战“疫”期间,腾讯与广州市政府合作,在小程序“穗康”上,2天内上线了全国首款口罩预约功能,上线首日访问量1.7亿,累计参与口罩预约人次1400万+。那么,它是如何在2天内开发上线,扛住了超大并发量呢?其背后的前后端架构是怎样的?

无损服务设计

整个流程下来需要 3 个实时接口:

  • 药店当前口罩的库存情况
  • 哪个时间段有名额
  • 提交预约实时返回结果

有损服务设计

结果,口罩预约关注度远超预期:

下面展示的 UI 的设计:

为什么有 “损”

平衡的理论就是 CAP 理论、BASE 最终一致性:

牺牲强一致换取高可用

两个机房需要同步,并发性差。以下是优化后的代码,引入计时器:

降低了专线依赖。

怎么 “损”

  • 放弃绝对一致,追求高可用和快速响应
  • 万有一失,用户重试
  • 伸缩调度,降级服务

(1)穗康小程序

引入消息队列,最终一致:

(2)QQ 相册负载高

选择扩容?带宽和存储成本高。

(3)转账

用户重试极少量消息。再想一下微信的红色感叹号,点一下重新发送。

(4)穗康的预约重试

(5)QQ 相册降级