关于核酸架构思考后感

看到一个推文,
原文地址:
 
起因是 成都核算系统崩溃。
 
一位架构想象,作为核酸系统的架构师,的理解。
 
看完文章,学习到的

1、明确系统边界。

  架构师首先明确系统边界,
  熟悉项目流程 1 2 3 4 5 等

2、崩溃疑云

  这个是对已有项目出现问题点的分析和排查方向。根据已有的信息,锁定问题可能出现的点位。
  可能的问题 1、 可能的问题 2 等

3、应用层涉及

  项目是否属于高并发应用,这个对数据做个估算。
    人口估算,2000W+ 人,6小时内做核酸,每秒 tps 约 1000。假设高峰期时平均并发 2 - 3 倍。则 tps 为 2000 ~ 3000.
    核酸点估算,1.5W+ 核酸点, 医护扫码间隔 10s - 15s之间,设每个核酸点两排队伍,并发核酸登记 tps 2000 ~ 3000
  -- 估算得到系统请求并发度不高。
    每日数据量,每天 1200W,假定每天 1000W, 一周 7000W, 一个月 3亿数据量
  -- 大数据量 势必要使用分库分表。
 
0
  【第一次设计架构,使用分库分表 硬挡高流量访问。这里架构,用到api网关、核酸系统、缓存、分库分表中间件(这里模块用来单独做数据存储功能) 】
 
  第一次分析后,还要考虑核酸等级需要同步给健康码服务。
0
  【第二次设计架构,加入了 消息队列MQ,异步和解耦,还可以起到消峰作用。
   这里有一句提醒:架构设计中,不是引入组件就完事了,更需要考虑如何精准使用组件,
    例:使用消息队列kafka,如何保证不丢消息,保证高可用。
    例:使用分库分表中间件,是否需要数据异构,冷热分离 等 】

4、监控平台

  研发的双眼,监控平台 + 日志平台
  监控平台

  4.1、基础运维监控

    负责监控服务器的 CPU、网络、磁盘、负载、网络流量、TCP连接等指标,通过设定报警阈值,实时通知指定负责人。

  4.2、应用系统监控

    研发接触最多的一种监控类型。系统出现瓶颈时候,应用系统监控有最直观的体现。
    
监控 备注

性能监控

(性能调优重点关注对象)

不同时段性能分布,实时统计 TP99、TP999、AVG、MAX 等维度指标。
方法调用次数监控 按照机器、时间段分析接口或者方法的调用次数,当大流量来袭,可以清晰看到请求波动。

方法可用性监控

(系统出现严重问题时,重要参考指标)

接口被调用或方法被执行,可能返回异常或者方法执行抛异常,分析该方法是否调用正常。

JVM监控

(特别关注对象) 

重点关注 堆内存、GC频率、线程数 等。
   
 

  4.3、业务监控

    对业务数据、业务功能进行监控,根据设置的策略对业务流程中不符合预期部分进行预警和报警。
    并对收集到业务监控数据进行集中统一的存储和各种方式进行展示。
      例:订单系统中的定时结算服务,每两分钟执行一次,可以在定时JOB中添加埋点,配置业务监控,如果十分钟该定时任务未执行,则发送邮件、短信给相关负责人。
 

5、多方协作

    多厂商协同作战,需要顶层统筹强压,让厂商多沟通协调,联合测验。
    【性能测试 非常重要,通过压测可以知道系统的极限值,系统承受不住访问时,就会暴露出瓶颈,如服务器 CPU、数据库、内存、相应速度等。从而促使研发团队进行再优化。】
 

  6、总结 (这个总结非常好)

    假如我是核酸架构师
      6.1、我会使用 消息队列 + 分库分表 来最大程度提升系统的吞吐量。
      6.2、我会在使用 消息队列中间件的时候,重点关注如何不会丢失消息,消息系统如何做到高可用。
      6.3、我会在使用 分库分表中间件的时候,重点关注 冷热分离,如何向数据异构到数据库仓库。
      6.4、我会在部署监控系统,提供 基础运维监控、应用系统监控、业务监控 的能力,当系统出现问题时,团队可以以最快的速度发现问题,并解决问题。
 

  后感 :

    几个重点知识点原理还要再深入学习下。
    1、消息队列,如何保证不丢消息,保证高可用。
      这里消息队列 有 kafka、 RocketMq、RabbitMq 每种的实现方式都需要再整理对比下,加深记忆。
 
    2、数据库的 数据异构,冷热分离
      这里常用的是Mysql、最近几年用Oracle 比较少, 如果需要用Oracle 实现, 就需要对比下跟mysql 的区别。再换PostgreSql ,将会如何实施。 具体过程要操作一两次。
 
    3、实时统计 TP99、TP999、AVG、MAX 等维度指标 这几个参数如果不依靠已存在的UPM监控,自己实现的话需要如何实现?
posted @ 2022-11-05 18:14  currentTimeMillis  阅读(178)  评论(0编辑  收藏  举报