一码通设计方案

480 阅读2分钟

一码通作为防疫工作的产物,在防疫工作中起到了很重要的作用,借着西安一码通崩溃这个契机,想了一下,如果让我设计我会怎么设计一码通,保证防疫工作的有条不紊。

一码通功能:

1、查询一码通的颜色:典型的查询功能,只需要一个查询SQL就可以,接口特点是只查询单一用户的二维码,这个完全可以支持哈希分表,可以按照userId进行哈希分表,因为一码通会在早高峰、晚高峰时访问量突增,这里考虑使用rides建立一个缓存层,同时考虑初次访问用户防止缓存穿透,添加一个布隆过滤器,被过滤掉的用户要新建用户信息,拉取行程信息,判断历史轨迹有无和病例轨迹重合的情况进行数据表初始化。再服务之前添加nginx访问量突增时能提供部分可提供的服务,同时在Nginx报警时候通过添加机器实现快速扩容,最后服务器要做异地多活部署,防止因为局部地区电力异常等原因引起服务瘫痪。通过以上方式,可以保证一码通的查询功能可以提供至少百万的QPS并发量。

2、查询核酸检测、疫苗的情形,首先这个功能的并发量不如一码通颜色查询功能,所以这个数据要和一码通颜色的分表进行。

3、核酸检测、疫苗录入,后台接口。

4、一码通变色方案,这个直接后台执行,无需接口,首先要录入病例手机号,查询近7天或14天轨迹(主要是基站的接入轨迹,这个数据运营商应该会记录的)查询相同基站同时接入的手机号并将接入基站时间超过一定阈值的时候变成相应的颜色,并定义为密切接触者进行隔离,对于接入时间较短的按照一定规则进行变色,防止携带疫情传播,并进行追踪核酸检测,当按照规则上传核酸检测结果后,方可变成绿色。一码通变色后要给出相应的变色原因和恢复方法。

5、至于扫码登记功能我觉得就是鸡肋,完全可以通过手机移动轨迹进行定位追踪。