简述
核酸采集人员用手机扫描用户的核酸码进行信息录入,扫描后迟迟是泛白的界面,这里就简单分析下。
一则消息:http://cd.bendibao.com/live/202292/143899.shtm
整体流程
说明
实际场景中,细节比较多,这里为了便于理解,只分析大体的流程,如有问题,欢迎指正。
对象
● 用户:获取核酸检测码。此时服务器应该插入一条用户数据,核酸检测状态为未检测。
● 核酸采集人员:扫描用户核算检测码。此时服务器应该更新该状态为检测中,表示即将送检。
● 核酸检测和录入结果的人员:将采集到的拭子进行检测,检测结果录入到系统。更新检测结果。
● 查询核酸信息的人员:用户自身,核酸机构人员,相关管理人员等。查询一个或多个用户数据。
● 核酸系统服务器:提供核酸检测码获取,核酸采集,信息查询和存储等。
写数据阶段
即是核酸从采集到检测的过程。
读数据阶段
平时的健康码展示,核酸系统数据查询等。
分析与解决方式
根据上面的过程,出现泛白的界面,很大可能的原因是应用服务被大流量打挂,或者数据库挂了。
这里从整体架构上来说(不涉及应用服务外部),核心解决方式就是要保护服务:
● 服务保护:限流
,舱壁
,请求入MQ
,批量pull队列消息
进行批量处理,以及服务集群
,负载均衡
等。
● 高效写数据:例如可以用ClickHouse集群批量存储或更新数据。
● 查询缓存与数据的弱一致性:Redis
集群做缓存查询,数据容忍度在两小时内,某城市人口2119.2万,每5分钟进行一次100万数据的缓存更新,或者更细的数据或时间粒度,或者更长容忍度时间,具体压测情况具体分析。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库