首页 > 其他分享 >关于核酸架构思考后感

关于核酸架构思考后感

时间:2022-11-05 18:23:40浏览次数:73  
标签:分库 架构 队列 系统 核酸 监控 后感 分表

看到一个推文, 原文地址: https://mp.weixin.qq.com/s/PF26lWFG3ICsK-mlK52mFw   起因是 成都核算系统崩溃。 成都核酸系统崩溃事件陷“罗生门”_腾讯新闻 (qq.com)   一位架构想象,作为核酸系统的架构师,的理解。   看完文章,学习到的

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监控,自己实现的话需要如何实现?

标签:分库,架构,队列,系统,核酸,监控,后感,分表
From: https://www.cnblogs.com/wgy1/p/16860785.html

相关文章