3

核酸检测系统崩溃场景浅析 - rhyme

 2 years ago
source link: https://www.cnblogs.com/theRhyme/p/Nucleic-Acid-Test-System-Downtime.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

核酸采集人员用手机扫描用户的核酸码进行信息录入,扫描后迟迟是泛白的界面,这里就简单分析下。

一则消息:http://cd.bendibao.com/live/202292/143899.shtm

实际场景中,细节比较多,这里为了便于理解,只分析大体的流程,如有问题,欢迎指正。

用户:获取核酸检测码。此时服务器应该插入一条用户数据,核酸检测状态为未检测
核酸采集人员:扫描用户核算检测码。此时服务器应该更新该状态为检测中,表示即将送检。
核酸检测和录入结果的人员:将采集到的拭子进行检测,检测结果录入到系统。更新检测结果。
查询核酸信息的人员:用户自身,核酸机构人员,相关管理人员等。查询一个或多个用户数据。
核酸系统服务器:提供核酸检测码获取,核酸采集,信息查询和存储等。

写数据阶段

即是核酸从采集到检测的过程。

1158841-20220903125921663-284326120.png

读数据阶段

平时的健康码展示,核酸系统数据查询等。

1158841-20220903125943581-337101514.png

分析与解决方式

根据上面的过程,出现泛白的界面,很大可能的原因是应用服务被大流量打挂,或者数据库挂了。

这里从整体架构上来说(不涉及应用服务外部),核心解决方式就是要保护服务:
服务保护限流舱壁,请求入MQ批量pull队列消息进行批量处理,以及服务集群负载均衡等。
高效写数据:例如可以用ClickHouse集群批量存储或更新数据。
查询缓存与数据的弱一致性Redis集群做缓存查询,数据容忍度在两小时内,某城市人口2119.2万,每5分钟进行一次100万数据的缓存更新,或者更细的数据或时间粒度,或者更长容忍度时间,具体压测情况具体分析。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK