当前位置: 首页 > article >正文

系统架构设计论文

disstertation

  软考高级-系统架构设计师-论文:论文范围(十大知识领域)、历年论题、预测论题及论述过程、论文要点、论文模板等。


—— 2025 年 4 月 4 日 甲辰年三月初七 清明

目录

    • disstertation
      • 1、论文范围(十大核心领域)
      • 2、历年论题
      • 3、预测考点
        • 3.1面向对象
        • 3.2 面向切面
        • 3.3 架构评估
        • 3.4 架构设计
        • 3.5 可靠性设计
        • 3.6 安全性设计
        • 3.7 高并发设计
        • 3.8 高可用设计
        • 3.9 微服务架构
        • 3.10 分布式架构
        • 3.11 分布式数据库
        • 3.12 分布式缓存
        • 3.13 分布式文件系统
        • 3.14 分布式事务
        • 3.15 软件架构维护
      • 4、论文要点
      • 5、论文模版

1、论文范围(十大核心领域)

  系统架构设计师需要掌握的知识领域广泛且深入,以下是十大核心知识领域的总结,结合了行业标准和实际架构设计需求。

  这些知识领域需结合具体行业(如金融、电商、IoT)特点灵活应用,架构师的核心价值在于平衡技术先进性与业务可行性,同时规避长期技术债务风险。

  • 1.软件架构理论与模式
    • 核心内容:分层架构、微服务、事件驱动架构(EDA)、CQRS、六边形架构、Clean Architecture等。
      • 关键能力:根据业务需求选择合适模式,权衡模块化、解耦与性能。
      • 扩展:云原生架构(Serverless、Service Mesh)、领域驱动设计(DDD)。
  • 2.系统设计方法与评估
    • 核心方法:ATAM(架构权衡分析法)、QFD(质量功能部署)、UML/SysML建模。
      • 工具:ArchiMate、C4模型、决策树分析。
      • 输出:架构决策记录(ADR)、技术可行性报告。
  • 3.分布式系统设计
    • 关键技术:CAP定理、一致性算法(Raft/Paxos)、分布式事务(Saga、TCC)、消息队列(Kafka/RabbitMQ)。
      • 挑战:网络分区容错、幂等性设计、数据一致性(最终一致性 vs 强一致性)。
  • 4.性能与可扩展性
    • 优化方向:缓存策略(Redis、Memcached)、CDN、数据库分库分表、读写分离。
      • 指标:TPS、延迟、吞吐量、99分位响应时间。
      • 实践:压测工具(JMeter)、性能剖析(Flame Graph)。
  • 5.安全架构设计
    • 核心领域:零信任架构、OWASP Top 10防护、数据加密(TLS、HSM)、RBAC/ABAC权限模型。
      • 合规性:GDPR、等保2.0、PCI-DSS。
      • 新兴技术:同态加密、机密计算(Intel SGX)。
  • 6.云与基础设施架构
    • 多云/混合云:AWS/Azure/GCP服务选型、Kubernetes编排、IaC(Terraform)。
      • 关键服务:无服务器(Lambda)、托管数据库(RDS)、边缘计算(Cloudflare Workers)。
      • 成本优化:预留实例、Spot实例调度。
  • 7.数据架构与治理
    • 数据分层:OLTP vs OLAP、数据湖仓一体化(Delta Lake)、实时数仓(Flink)。
      • 技术栈:SQL/NoSQL选型、ETL工具(Airflow)、数据血缘(Apache Atlas)。
      • 趋势:Data Mesh、向量数据库(AI场景)。
  • 8.容灾与高可用
    • 策略:多活架构(同城/异地)、蓝绿部署、混沌工程(Chaos Monkey)。
      • 指标:RTO(恢复时间目标)、RPO(数据丢失容忍度)。
      • 案例:金融级容灾(两地三中心)。
  • 9.DevOps与持续交付
    • 工具链:CI/CD(Jenkins/GitLab CI)、制品库(Nexus)、监控(Prometheus+ELK)。
      • 实践:GitOps(Argo CD)、不可变基础设施、Canary发布。
      • 文化:SRE(服务等级目标SLO制定)。
  • 10.业务与需求分析
    • 方法论:用户故事地图、影响地图(Impact Mapping)、非功能性需求(NFR)量化。
      • 沟通:跨部门协作(产品/运营/安全)、技术商业化思维(ROI分析)。
      • 案例:架构反模式识别(过度设计 vs 欠设计)。
  • 附加能力
    • 新兴技术敏感度:AI架构(MLOps)、区块链智能合约、量子计算潜在影响。
    • 软技能:技术谈判、文档撰写(RFC模式)、技术领导力(Mentoring)。

  论文高频题:系统建模、软件架构设计、基于架构的软件开发方法、系统设计、系统的可靠性分析与设计、系统的安全性和保密性设计。

2、历年论题

时间\题目论题一论题二论题三论题四
2009领域专用架构(DSSA)信息系统建模REST 服务的 web 应用可靠性设计
2010软件的静态演化和动态演化数据挖掘技术分布式缓存可靠性评估
2011模型驱动架构(MDA)需求获取技术企业架构管理企业集成平台
2012基于架构的软件设计方法(ABSD)数据持久层设计(DPL)决策支持系统(DSS)信息化建设
2013软件架构建模技术分层架构风格分布式存储可靠性设计
2014需求管理非功能性需求网络安全设计可靠性设计
2015应用服务器基础软件系统架构风格面向服务架构(SOA)企业集成平台
2016系统架构评估数据访问层设计设计模式微服务架构
2017信息系统建模软件架构风格无服务器架构软件质量保证
2018软件开发过程 RUP软件体系结构演化面向服务架构(SOA)NoSQL 数据库
2019系统架构评估软件设计方法数据湖技术负载均衡在 web 中
2020数据分片技术云原生架构软件测试缺陷管理企业集成架构
2021面向切面编程(AOP)系统安全架构微服务架构企业集成平台
2022基于构件的软件设计方法(ABSD)软件维护方法区块链技术湖仓一体架构
2023面向对象设计多数据源集成边缘计算可靠性模型
2024-05模型驱动架构(MDA)大数据 lamda单元测试方法云上自动化运维
2024-11系统维护多数据源集成面向服务架构(SOA)分布式事务

面向对象、面向切面、架构评估、架构设计、可靠性设计、安全性设计、高并发设计、高可用设计、微服务架构、分布式架构、分布式存储、分布式数据库、分布式缓存、分布式事务、基于架构的软件设计方法(ABSD)、企业集成平台、

3、预测考点

  面向对象、面向切面、架构评估、架构设计、可靠性设计、安全性设计、高并发设计、高可用设计、微服务架构、分布式架构、分布式数据库、分布式缓存、分布式存储、分布式事务。

3.1面向对象
3.2 面向切面
3.3 架构评估
  • 架构评估核心目标

    • 确保架构满足需求:
      • 功能性需求:业务逻辑。
      • 非功能性需求:性能、安全性、可用性、可靠性、可修改行、易用性、健壮性、互操作性等。
    • 识别潜在风险:技术债务、单点故障、扩展瓶颈等。
    • 优化架构决策:在成本、时间和技术可行性之间权衡。
  • 常见架构评估方法

    • 基于问卷调查的评估方式:具有主观性,不太适合本项目。
    • 基于度量的评估方式:虽然评价比较客观,但需要评价者对系统架构有精确的了解,所以也不太适合本项目。
    • 基于场景的评估方式:评价较主观,要求评估者对系统有中等程度的了解,故本项目采用基于场景的评估方式。
      • SAAM:架构分析法。
        • 主要输入:问题描述、需求说明、架构描述文档。
        • 分析过程:场景开发、架构描述、单个场景评估、场景交互、总体评估。
      • CBAM:成本效益法。
      • ATAM:架构权衡分析法。
  • 架构评估过程

    • 描述和介绍阶段:描述架构评估方法、描述业务动机、描述架构。
    • 调查和分析阶段:确定架构方法、生成质量属性效用树、分析架构方法。
    • 测试阶段:讨论场景和对场景分级、分析架构方法。
    • 最终/报告阶段:描述评估结果、生成评估报告。
  • 论述过程:按照架构评估过程进行论证。

    • 1、介绍架构评估目标(并解释质量属性)、介绍并确定架构评估方法、介绍所选架构。
    • 2、罗述质量场景、生成质量属性效用树、说明敏感点、权衡点、风险点和非风险点并指出对应质量场景。
    • 3、确定质量场景优先级并提供解决方案。
    • 4、生成评估报告。
3.4 架构设计
  • 软件体系结构设计定义:从宏观层次对需要开发的目标系统进行描述,用不同的视图从不同的视角对目标系统进行分析与设计的过程。具体过程可分为:体系结构需求、体系结构设计、体系结构文档化、体系结构复审、体系结构实现、体系结构演化等。
  • 架构设计过程
    • 体系结构需求:根据用户需求和对目标系统的质量目标整理出功能性需求和非功能性需求,架构必须同时满足二者,并罗列架构核心关注点(如功能性需求、非功能性需求(架构评估质量场景)等)。
    • 体系结构设计:考虑到架构核心关注点所描述的问题,故本项目采用微服务架构,简述各组件关系、服务拆分、通信等。
    • 体系结构文档化:采用 4 + 1 时图模型,描述系统逻辑架构、实现架构、进程架构、部署架构、用例时图,输出架构文档、设计文档等等。
    • 体系结构复审:与架构团队、客户团队等对架构设计进行评审。
    • 体系结构演化:上线后有什么问题,如何解决。
3.5 可靠性设计

心跳、Ping/Echo、主动冗余、被动冗余、选举、集群等。(需通过量化数据来说明)。

  • 可靠性定义:系统在发生错误或故障的情况下,能够维持系统功能特性的能力。
  • 系统可靠性
    • 硬件可靠性:物理退化,故障率变高,通过主动冗余、监控检错配合报警(心跳、Ping/Echo等)来解决。
    • 软件可靠性:业务逻辑复杂度、系统设计,通过防卫式程序设计、N 版本程序设计、降低复杂度设计等来解决。
  • 论述过程
    • 1、介绍什么是系统可靠性,硬件故障和软件故障如何产生以及常用解决方案。
    • 2、针对本项目所选用可靠性方案进行论述。
    • 3、每个论点先说明不这样设计的问题(例:系统集群部署:单个硬件设备或单个软件服务进程或有什么问题),然后说明该如何设计(例:应该集群部署),这样设计如何解决问题,会带来什么问题。
    • 4、系统集群部署、数据库主备部署(可引进缓存设计)、程序设计方面容错(防卫式程序设计:参数校验、sql 注入、异常处理等;降低复杂度:高内聚、低耦合、面向对象六大设计原则、设计模式等)。
    • 故障检测与恢复、冗余设计、软件容错、降低复杂度、采用成熟构件。
    • 分层设计:
      • 基础设施层:
        • 同城双活(同城两机房)、异地备灾、两地三中心。
        • 负载均衡:nginx、服务网关。
      • 数据层:
        • 分布式数据库:tidb、最终一致性。
        • 分布式缓存:redis 高可用。
      • 应用层:
        • 限流、熔断、降级。
        • 服务网关:路由与负载均衡、k8s 弹性扩容。
      • 监控与自愈:日志收集、可用性计算、告警。
3.6 安全性设计
  • 安全性定义:指系统向合法用户提供服务的同时能够拒绝非法用户使用系统的能力。
  • 信息安全五要素:机密性、完整性、可用性、可控性、可审查性。
    • 机密性:确保数据不暴露给未授权的实体或进程。入侵检测、用户认证。
    • 完整性:只有被授权的实体才可修改数据,并能判定出数据是否已被篡改。用户授权、数据加密(加密传输、加密存储)。
    • 可用性:确保被授权的实体在需要时可访问数据,即攻击者不能使用所有资源阻碍被授权者的使用。
    • 可控性:可以控制授权范围内的信息刘向和行文方式。
    • 可审查性:对出现的问题提供调查的依据和手段。追踪审计。
  • 论述过程
    • 1、先说明什么是安全性、安全问题如何产生(恶意入侵、泄漏、爬取、盗刷流量等)。
    • 2、说明信息安全五要素定义。
    • 3、以此说明在项目中如何确保五要素。
    • 用户认证、授权:单点登录、基于RBAC的权限模型、token 验证(第三方授权、刷新 token、token)。
    • 入侵检测:ip 过滤、ip 黑名单、ip 白名单。
    • 数据加密:加密传输(非对称加密(RSA)、数字签名以及如何加密)、加密存储(sql 函数和客户端设置)数据脱敏。
    • 追踪审计:日志收集、监控告警。
3.7 高并发设计

核心考点

  • 并发问题本质:资源竞争、数据一致性、系统扩展性。

  • 分层优化策略:前端 -> 网关 -> 服务层 -> 数据层逐级削峰。

  • 技术组合能力:缓存、队列、并发、资源调度、分库分表。

  • 前段层优化:减少 http 请求,加速页面渲染。

    • 静态资源加速:cdn 分发 html/css/js,减少源站压力。
    • 浏览钱缓存:强缓存(cache-control: max-age = 3600)。
    • 请求合并:将多个接口聚合为BFF(Backend For Fortend)。
  • 接入层优化:防止恶意流量、负载均衡(发挥节点性能)。

    • nginx 负载均衡服务网关。
    • 服务网关:路由与负载均衡(负载均衡策略)、限流降级(sentinal)、熔断、黑名单。
  • 服务层优化:避免资源竞争、提高吞吐量。

    • 增加计算资源(集群部署)、减少计算开销(优化业务逻辑、字段裁剪等)、引入优先级队列(mq 削峰)、引入并发机制、采用资源调度(线程池)。
  • 数据层优化:降低数据库负载、突破单机性能瓶颈。

    • 缓存策略:

      • 缓存:分布式缓存 热 key + 本地缓存。
      • 雪崩:缓存预热、随机过期时间。
    • 数据库策略:读写分离、分库分表、缓存 + 数据库读写问题。

  • 容灾与降级

    • 熔断机制:qps >= 5000 式2熔断。
    • 降级方案:返回缓存历史数据、关闭非核心功能。
3.8 高可用设计

见 3.5 可靠性设计。

3.9 微服务架构
  • 定义:定义、优点、缺点。
  • 相关组件:注册中心、配置中心、网关、调用、负载均衡、限流/降级/熔断、分布式事务。
  • 论述过程:分别说明各组件作用、特点、缺点及注意事项。
    • 注册中心:sca nacos、与 eureka 区别、优点。
    • 配置中心:优点。
    • 网关:nginx 网关、服务网关、优点。
    • 调用:http 与 rpc 区别。
    • 负载均衡:nginx 负载均衡、服务网关负载均衡。负载均衡测略。轮询、加权轮询、最少连接、ip 哈希。
    • 限流降级熔断:定义、实施、限流算法。
    • 分布式事务:
    • 最终一致性:
3.10 分布式架构
  • 理论基石
    • CAP:一致性(C)、可用性(A)、分区容错性(P)。
      • 一致性:所有节点在同一时间看到的数据是一致的。即任何读操作都能督导最新写入的数据。若某个用户更新了某个数据,则其它用户在读取时应该立即看到更新后的结果。
      • 可用性:系统在任何时候都能正常使用,不会因为部分节点故障而导致整个系统不可用。即使某些节点宕机,用户仍可读写数据。
      • 分区容错性:系统在遇到网络分区(即节点间通信中断,如网络延迟、丢包、节点故障等)时,仍能够继续运行。即使部分节点间出现网络故障,系统仍能够提供服务。
    • BASE:基本可用性(Basically Available) + 最终一致性(Eventually Consistent)。
      • 基本可用性:系统在出现故障时(如节点故障或网络分区),仍然能够提供部分功能或服务(如核心功能),而不是完全不可用。但可能会降低服务质量(如降级或增加响应时间)。电商系统在大促销期间可能会关闭非核心功能(如评价系统),但核心功能(如下单、支付)仍然可用。
      • 软状态(Soft State):系统的状态可能会随着时间的推移而变化,即便没有外部输入,数据也可能不一致。换言之,系统的状态不需要时刻保持一致,允许存在中间状态,且状态的变化通常通过异步更新或后台任务完成。分布式缓存中的数据可能会在一段时间后过期或更新。
      • 最终一致性:系统在经过一段时间后,最终会达到一致状态。即不要求数据的实时一致性,运允许短时间内不一致,通过异步复制或消息传递来达到最终一致。分布式数据库(Cassandra)中,数据被更新后,可能会延迟同步到所有节点,但最终所有节点的数据将会保持一致。
    • 一致性协议(分布式一致性共识算法):Raft(kafka、etcd、tidb)、Paxos(zookeeper)。
  • 实践
    • 分布式数据库:TiDB、Multi-Raft 协议,再说明其与 mysql 的区别。
    • 分布式缓存:redis、协议、分布方式、数据同步、持久化。
    • 分布式事务:分布式事务解决方案。
    • 分布式文件系统:
      • 数据可靠性:通过数据冗余存储(默认3副本)和自动容错机制(数据块复制、心跳检测和数据块扫描)来保证数据的可靠性。
      • 可伸缩性:通过增加更多的节点来线性扩展存储容量,能够支持 PB 级数据的存储。
      • 性能:通过数据本地化、优化读写路径和利用硬件特性(如磁盘并行读写)来提高数据传输和处理效率。
    • 消息队列:解耦、削峰填谷、异步、发布订阅、可伸缩性、容错性、持久化、低延迟、生态系统支持。
      • 优点:
        • 解耦:提高系统可扩展性和灵活性。
        • 削峰填谷:平衡系统负载。
        • 异步:异步处理,提高系统吞吐量。
        • 发布订阅:实现消息的订阅和选择性传递。
        • 可伸缩性:通过增加更多节点来线性伸缩,以适应不断增长的数据量。
        • 容错性:通过数据复制和分区机制来提供强大的容错能力。
        • 持久化:允许用户根据需要调整数据的保留策略和副本因子,以适应不同的业务场景。
        • 生态系统支持:强大的生态系统和丰富的 api,可无缝集成到现有系统或框架中。
      • 缺点:
        • 消息队列设计管理较复杂。
        • 可能出现消息丢失、重复或乱序问题。
        • 需要处理消息队列延迟和吞吐量瓶颈。
3.11 分布式数据库
  • CAP 定理及一致性协议(分布式算法):分布式理论与分布式算法

  • 定义:忘了,等做到了再补上。

  • 主要特点

    • 数据分布性:数据在物理上分布于不同的节点。
    • 逻辑整体性:数据在逻辑上是相互关联的统一整体。
    • 节点自治性:每个节点可以独立处理本地数据。
    • 使用透明性:用户无需知道数据存储在哪个节点上。
  • 分布式数据库模式

    • 全局概念模式:定义分布式数据库中数据的整体逻辑结构,数据就如同根本没有分布一样,可使用传统的集中式数据库所采用的方法进行定义。
    • 全局外模式:是全局应用的用户视图,是全局概念模式的子集,该层直接与用户交互。
    • 局部概念模式:是局部数据库的概念模式。
    • 局部内模式:是局部数据库的内模式。
    • 分片模式:讲一个关系模式分解成多个数据片。
    • 分布模式:定义分片模式的处理结果的存放节点,即数据分布在不同的物理位置。
  • 分布模式

    • 共享磁盘(存储)架构(Shared-Disk):所有节点共享统一存储设备,但计算资源独立。其优点是数据一致性易维护,缺点是存在单点故障风险且扩展受限。适用于读多写少、小规模、低并发场景。
    • 无共享架构(Shared-Nothing):每个节点独立存储和处理本地请求,节点间通过消息传递写作。其优点是容错性高易扩展、大数据量高并发,缺点是引入了数据一致性问题、数据分片问题和事务处理的复杂性。适用于分布式、大规模、高并发场景。
    • 多主复制(分片)架构(Sharding):数据按特定规则划分为多个分片,分布到不同节点,多节点共同提供读写服务。其优点是高可用、高负载,缺点是数据冲突和一致性问题,且实现复杂。别用。
  • 分片模式

    • 水平分片:
      • 哈希分片:对分片字段(如用户 id)进行哈希,将数据均匀分配到多个节点上,适用于均匀分布的数据。
      • 范围分片:按分片字段(一般为时间字段)将数据以时间范围为条件分配到多个节点上。适用于时间性较强的数据。
    • 垂直分片:按特定列的字段值切分,通常用于逻辑上的分片。如根据地区或部分切分。
    • 混合分片:结合水平分片与垂直分片,应该对复杂业务需求。
  • 数据复制

    • 主从复制:一主多从,主节点负责处理写请求,并将写操作结果同步到从节点,多从节点负责处理读请求。其优点是实现简单、易于理解,读写分离、提高性能;缺点是单点故障需手动升级主节点,主从同步可能存在延迟,导致数据不一致。
      • 优点:
        • 避免单点故障:主节点实时、异步的复制数据到从节点,当主节点宕机或故障时,可选取一个从节点升级为主节点,从而防止单点故障。
        • 提高吞吐量:读写分离,主节点负责处理写请求,从节点负责处理读请求,以此来避免因读写锁的竞争而带来的时间损耗,降低了系统压力,提高了吞吐量。
      • 全同步复制:主库完成一个事务后,会等待所有从库完成同步再返回。数据一致性高但性能较低。
      • 半同步复制:主库完成一个事务后,会等待至少一个从库完成同步再返回。牺牲了一定性能但提高了数据安全性。
      • 异步复制:主库完成一个事务后立即返回,不会等待从库完成同步。性能高但数据一致性差。
      • mysql 主从复制过程:
        • 当在从库上启动复制时,首先创建 I/O 线程连接主库,
        • 主库随后创建 Binlog Dump 线程读取数据库事件并发送给 I/O 线程,
        • I/O 将接收到的数据库事件更新到从库的 Relay Log 中去,
        • 之后从库上的 SQL 线程读取中继日志 Relay Log 中的数据库事件并应用。
    • 多主复制:多个主节点同时处理写请求,并将写操作结果同步给各自从节点。其优点是无单点故障、写入性能高;缺点是数据冲突与实现复杂。
    • 链式复制:节点以链式结构存在。写请求先由头节点处理,然后依次传递给后继节点,读请求由链中任意节点处理。其优点是数据一致性强、且避免了数据冲突,缺点写操作延迟较高(尤其是链较长时)、链中单节点故障会导致链中断。适用于读多写少且对数据一致性要求高的场景。
  • 一致性模型

    • 强一致性:
      • 线性一致性:写入的值在调用和完成之间可以被其它节点读取出来,即不会读到数据转换的过程和中间未完成的状态。
      • 顺序一致性:
    • 弱一致性:
      • 因果一致性:
      • 最终一致性:副本之间的数据复制完全是异步的,即写操作执行完后,会以异步的方式在一段时间后同步到其余副本,这段时间可以是毫秒、数天、甚至永远,总之最终它一定会同步的。
      • 客户端一致性:
  • 事务处理

    • 见下文 分布式事务。
  • 查询优化

    • 数据库定位优化:分片裁剪(只访问当前节点分片规则内的数据)、全局索引(维护分片键与物理位置的映射)、本地索引(各分片维护自己的索引)。
    • 连接操作优化:广播连接(将小表复制到所有节点)、重分布连接(按连接键重新分布数据,即将连接键相关的一组数据分布到同一节点上)、本地化连接(同一分片上的表直接连接)。
    • 聚合操作优化:各节点执行局部聚合,合并节点执行全局聚合。
    • 并行执行优化:流水线并行(不同操作阶段重叠执行)、分区并行(不同数据分区并行处理)、操作符并行(单个操作符内部分解为子任务)。
    • 网络传输优化:列式传输(只传输查询需要的列)、数据压缩(减少网络传输量)、批处理(合并多个小请求为批量请求)。
  • 挑战

    • CAP 权衡:分布式系统中 p 不可避免,故只能在 cp 和 ap 二者之间抉择,如金融系统选强一致性,社交网络选高可用性。
    • 事务处理:跨多个节点事务处理。
    • 查询优化:数据分片导致。
    • 运维管理:复杂度提高。
  • 主流分布式数据库对比

    数据库类型一致性模型特点适用场景
    Google SpannerNewSQL强一致性全球时钟同步金融、跨洲际强一致性
    CockroachDBNewSQL强一致性(线性)兼容 pgSQL、自动分片全球化部署、HTAP
    TiDBNewSQL强一致性(线性)兼容 MySQL、HTAP 架构实时分析、高并发事务
    CassandraNoSQL最终一致性高写入吞吐、多数据中心复制社交网络、时序数据
    MongoDBNoSQL可调一致性灵活文档模型、自动分片内容管理、物联网
3.12 分布式缓存

说 redis 就行,我说的。

3.13 分布式文件系统

说 HDFS 就行。

3.14 分布式事务

介绍事务特性(ACID)、常见协议或算法、实际使用组件(Seata)。

  • 四种方案
    • AT 模式:AT 模式是一种无侵入的分布式事务解决方案。用户只需关注自己的业务 sql,AT 模式会自动生成事务的二阶段提交和回滚操作。一阶段,AT 模式 会拦截业务 sql,解析 sql 语义,找到要更新的业务数据,并保存快照数据和行锁。二阶段,如果是提交,则清理快照数据;如果是回滚,则根据快照数据恢复业务数据。
    • TCC 模式:侵入性强,但性能高。该模式需要用户自己根据业务场景实现 try、confirm 和 cancel 操作。此三种操作分别对应事务的开启、二阶段事务提交和二阶段事务回滚。该模式适用于对中间状态有约束的业务,如订单业务。
    • Saga 模式:该模式适用于长事务,由事件驱动,各个参与者之间异步执行。如果任何一个正向操作失败,该模式会执行前面各个参与者的逆向回滚操作,回滚已提交的参与者。该模式的优点是并发度高,无长期资源锁定。
    • XA 模式:XA 模式是利用事务资源对 XA 协议的支持,以 XA 协议的机制来管理分支事务。XA 模式是两阶段提交模式,通过资源管理器和事务协调者来保证事务的原子性。该模式的优点是数据的一致性较好,缺点是实现复杂度较高。
  • 两种实现
    • 两阶段提交(2PC):
    • 三阶段提交(3PC):
3.15 软件架构维护
  • 可理解性:一个可维护的软件必然是可理解的。软件的可理解性是指通过阅读源代码和相关文档,了解软件的功能和如何运行的容易程度。软件的可理解性可以使用“90-10测试”的方法来衡量,即如果一个有经验的程序员阅读一份源代码清单10分钟,可以写出该程序的90%,则认为这个程序具有可理解性。
  • 可修改性:可维护性、可扩展性、可移植性、软件重构
    • 一个可维护的软件必然是可修改的。软件的可修改性是指修改软件的难易程度。软件的可修改性可以通过进行几个简单的修改练习来评价。假设软件的平均复杂性是C,要修改的模块的复杂性是A,那么修改的难度可由下面公式计算:D=AC
  • 可靠性:一个软件的可靠性越高,需要维护的概率就会越低。软件的可靠性是指软件在满足用户需求的前提下,在给定的时间段内正确运行的概率。软件可靠性的度量有以下两种方法:根据软件的错误统计进行可靠性预测。如度量软件的平均失效间隔时间(MTTF)。根据软件的复杂性进行可靠性预测。
  • 可测试性:一个可维护的软件必然是可测试的。软件的可测试性是指验证软件程序正确的难易程度。可测试性好的软件,通常意味着软件设计简单,复杂性低。因为软件的复杂性越大,测试的难度也就越大。
  • 易用性:软件易于使用通常意味着软件设计简单,易于理解。软件的可使用性是指用户使用软件的难易程度。软件的可使用性可以通过测试用户首次使用软件掌握常用功能的时间来衡量。

4、论文要点

  论文包含三部分:摘要 + 正文 + 结尾。

  • 1.摘要
    • 摘要组成部分:项目背景 + 论文主题(250 字 + 50 字 共 300 字)。
    • 项目背景组成部分:项目起止时间、项目投资(资源)、个人职责(建议以项目经理的角度进行写作)、项目甲乙双方(项目其他干系人——如有,如设计单位、质量监督机构等)、项目建设任务、项目建设目标/目的、其他补充。
    • 论文主题组成部分:论文主题设计某某知识领域、该领域具体管理过程、项目效果、业主评价。
  • 2.正文
    • 正文组成部分:项目背景、管理过程/论文主体(500 字 + 2000 字 共2500 字)。
    • 项目背景组成部分:在 摘要-项目背景 基础上进一步细化、详细。
    • 管理过程/论文主体组成部分:论文主题设计某某知识领域、该领域具体管理过程。如,该知识领域共设计 5 个管理过程/步骤 — 2000 字。
      • 过程/步骤1:阐述该阶段主要工作依据、方法技术、成果 — 400 字。
      • 过程/步骤2:同上 — 400 字。
      • 过程/步骤3:同上 — 400 字。
      • 过程/步骤4:同上 — 400 字。
      • 过程/步骤5:同上 — 400 字。
  • 3.结尾
    • 结尾组成部分:项目主要成果、个人目标(200 字 + 50 字)。
    • 项目主要成果组成部分:项目起止时间、项目目前状态、项目建设主要成效、其他补充。
    • 个人目标:自由发挥。

注:论文题目居中,黑体加粗,2 号字;摘要、正文和结尾首行缩进两字符、宋体 5 号字,段落行距 1.5 倍。

5、论文模版

  摘要:

  本人于 2022 年 7 月参与 XXX 项目,该项目 XXX、XXX 和 XXX 等功能模块。 在该项目组中我担任系统架构师岗位,主要负责系统整体架构设计工作。本文以该项目为例,主要讨论了 吧啦吧啦 在项目中的具体应用。(祭出排比句大招,简述论点在项目中的实际应用。如:通过 xx 技术/机制/模式等实现了什么功能或解决了什么问题。)。项目最终顺利上线,并持续稳定运行,为 XXX 提供了有力保障,且 XXX 取得了何种成绩。

  正文:

  随着国家经济的飞跃发展,人民生活水平的快速提高,以及国际政治因素的影响,以 XXX(项目目的)已显得尤为重要。故,2022 年我司 计划自主研发/手某某某公司委托 建设 XXX 项目。该项目主要包括 XXX、XXX 和 XXX 等功能模块(基于摘要 但比起更详细)。吧啦吧啦组件/技术/机制/模式。本人在项目中担任系统架构师职务,主要负责系统整体架构设计。

  我们在项目中采用 吧啦吧啦技术/架构/原则/模式(针对论点),论点是什么、有什么特点/原理过程是什么、能给系统带来什么好处(优点)。下文着重讨论 论点 在该项目中的具体应用和效果。

  一、过程/步骤1

  二、过程/步骤2

  (过程/步骤数 * 400 = 2000 字左右)

  该项目历时 2 年时间完成测试并上线,通过上述 论点方案的实施,整个系统持续稳定的运行,未出现过 论点所针对 的问题。

  当然,在我们设计系统和后期运行维护过程中,也陆续发现了一些问题和不足,如 吧啦吧啦 问题(问题定义),描述问题现象或过程。后续改进方案。

相关文章:

系统架构设计论文

disstertation 软考高级-系统架构设计师-论文:论文范围(十大知识领域)、历年论题、预测论题及论述过程、论文要点、论文模板等。 —— 2025 年 4 月 4 日 甲辰年三月初七 清明 目录 disstertation1、论文范围(十大核心领域&#x…...

第二篇:Liunx环境下搭建PaddleOCR识别

第二篇:Liunx环境下搭建Paddleocr识别 一:前言二:安装PaddleOCR三:验证PaddleOCR是否安装成功 一:前言 PaddleOCR作为业界领先的多语言开源OCR工具库,其核心优势在于深度整合了百度自主研发的飞桨PaddlePa…...

图片上传问题解决方案与实践

一、问题描述 在校园二手交易平台中,上传商品图片后出现以下异常情况: 图片访问返回404错误,无法正常加载服务器错误识别文件类型为text/plain图片 URL 路径存在不完整问题 二、原因分析 (一)静态资源访问配置问题…...

复杂业务场景下 JSON 规范设计:Map<String,Object>快速开发 与 ResponseEntity精细化控制HTTP 的本质区别与应用场景解析

Moudle 1 Json使用示例 在企业开发中,构造 JSON 格式数据的方式需兼顾 可读性、兼容性、安全性和开发效率,以下是几种常用方式及适用场景: 一、直接使用 Map / 对象转换(简单场景) 通过 键值对集合(如 M…...

二叉数-965.单值二叉数-力扣(LeetCode)

一、题目解析 顾名思义,就是二叉树中所存储的值是相同,如果有不同则返回false 二、算法原理 对于二叉树的遍历,递归无疑是最便捷、最简单的方法,本题需要用到递归的思想。 采取前序遍历的方法,即根、左、右。 我们…...

redis集群和哨兵的区别

Redis Sentinel系统监控并确保主从数据库的正常运行,当主数据库故障时自动进行故障迁移。哨兵模式提供高可用性,客户端通过Sentinel获取主服务器地址,简化管理。Redis集群实现数据分布式存储,通过槽分区提高并发量,解决…...

[蓝桥杯]对局匹配

对局匹配 题目描述 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是 K 的两名用户匹配在一起。如果两人分差小于或大于 KK,…...

BBU 电源市场报告:深入剖析与未来展望​

在当今数字化时代,数据中心的稳定运行至关重要。BBU 电源作为保障数据中心设备在停电或电压下降期间临时电力供应的关键系统,其市场发展备受关注。本文将从市场规模、竞争格局、产品类型、应用领域等多个维度对 BBU 电源市场进行深入分析,并为…...

Redis 持久化机制详解:RDB 与 AOF 的原理、优缺点与最佳实践

目录 前言1. Redis 持久化机制概述2. RDB 持久化机制详解2.1 RDB 的工作原理2.2 RDB 的优点2.3 RDB 的缺点 3. AOF 持久化机制详解3.1 AOF 的工作原理3.2 AOF 的优点3.3 AOF 的缺点 4. RDB 与 AOF 的对比分析5. 持久化机制的组合使用与最佳实践6. 结语 前言 Redis 作为一款高性…...

Hadoop企业级高可用与自愈机制源码深度剖析

Hadoop企业级高可用与自愈机制源码深度剖析 前言 在大数据平台生产环境中,高可用(HA)与自动化自愈能力直接决定了数据安全与服务稳定性。本文结合源码与实战,深入剖析Hadoop生态中YARN高可用、HDFS自动扩容、故障自愈三大核心机…...

【Kotlin】简介变量类接口

【Kotlin】简介&变量&类&接口 【Kotlin】数字&字符串&数组&集合 【Kotlin】高阶函数&Lambda&内联函数 【Kotlin】表达式&关键字 文章目录 Kotlin_简介&变量&类&接口Kotlin的特性Kotlin优势创建Kotlin项目变量变量保存了指向对…...

Mybatis入门到精通

一:什么是Mybatis 二:Mybatis就是简化jdbc代码的 三:Mybatis的操作步骤 1:在数据库中创建一个表,并添加数据 我们这里就省略了 2:Mybatis通过maven来导入坐标(jar包) 3&#xff1a…...

Unity性能优化笔记

降低Draw Call 降低draw call(unity里叫batches)的方法有: 模型减少材质; 多模型共用材质; 烘焙灯光; 关闭阴影和雾; 遮挡剔除; 使用LOD; 模型减少材质 > 见…...

BERT vs Rasa 如何选择 Hugging Face 与 Rasa 的区别 模型和智能体的区别

我在之前的一篇文章中提到我的短期目标的问题,即想通过Hugging Face的BERT或Rasa搭建一个简单的意图识别模型,针对发票业务场景来展示其效果 [如:开发票、查询发票]。 开篇,有必要记录几个英文缩写或术语 (如果喜欢&a…...

Excel 重复项标记,删除重复项时出现未响应的情况

目录 一、重复值标记: 二、删除重复值: 三、未响应问题 一、重复值标记: 方法1:开始 》条件格式 》突出显示单元格规则 》重复值 》设置颜色 》确定 PS:样式可自定义(边框、字体、背景填充...&#xff0…...

CppCon 2015 学习:Beyond Sanitizers

Sanitizers,一类基于编译时插桩(instrumentation)的动态测试工具,用来检测程序运行时的各种错误。 Sanitizers 简介 基于编译时插桩:编译器在编译代码时自动插入检测代码。动态运行时检测:程序运行时实时…...

Mysql选择合适的字段创建索引

1. 考虑字段的选择性 选择性:字段的选择性是指字段中不重复值的比例。选择性越高(即不重复值越多),索引的效率越高。 示例: 如果一个字段有100万行数据,但只有2个不重复值(如性别字段&#xff…...

Python:操作 Excel 格式化

🔧Python 操作 Excel 格式化完整指南(openpyxl 与 xlsxwriter 双方案) 在数据处理和报表自动化中,Python 是一把利器,尤其是配合 Excel 文件的读写与格式化处理。本篇将详细介绍两大主流库: openpyxl:适合读取与修改现有 Excel 文件xlsxwriter:适合创建新文件并进行复…...

ant-design-vue select 下拉框不好用解决

将optionFilterProp设置为label和a-select-option的:label"item.name"自定义属性 <a-selectshowSearchallowClearoptionFilterProp"label"placeholder"请选择选项"style"width: 120px; margin-right: 16px"><a-select-optio…...

[Java 基础]创建人类这个类小练习

请根据如下的描述完成一个小练习&#xff1a; 定义一个名为 Human 的 Java 类在该类中定义至少三个描述人类特征的实例变量&#xff08;例如&#xff1a;姓名、年龄、身高&#xff09;为 Human 类定义一个构造方法&#xff0c;该构造方法能够接收所有实例变量作为参数&#xf…...

Day43 Python打卡训练营

作业&#xff1a; kaggle找到一个图像数据集&#xff0c;用cnn网络进行训练并且用grad-cam做可视化 进阶&#xff1a;并拆分成多个文件 选取Kaggle上的CIFAR-10数据集进行CNN训练&#xff0c;并使用Grad-CAM进行可视化&#xff0c;代码将拆分为多个文件以保持模块化。CIFAR-10是…...

雷卯针对易百纳 SS524多媒体处理演示评估板防雷防静电方案

一、 应用场景 1. 远程视频会议 2. 安防监控 3. 人/车检测 4. 人脸检测、比对 5. 屏幕拼接墙 二、 功能概述 1 四核 ARM Cortex-A7 1.2GHz 2 AI算力 1.0Tops 3 4K30fps 4*1080P30编解码 三、 扩展接口 l RAM&#xff1a;板载 2*DDR4&#xff0c;共 2GB&#xff1b; …...

【BUG解决】关于BigDecimal与0的比较问题

这是一个很细小的知识点&#xff0c;但是很容易被忽略掉&#xff0c;导致系统问题&#xff0c;因此记录下来 问题背景 明明逻辑上看a和b都不为0才会调用除法&#xff0c;但是系统会报错&#xff1a;java.lang.ArithmeticException异常&#xff1a; if (!a.equals(BigDecimal…...

Spring Bean 为何“难产”?攻克构造器注入的依赖与歧义

本文已收录在Github&#xff0c;关注我&#xff0c;紧跟本系列专栏文章&#xff0c;咱们下篇再续&#xff01; &#x1f680; 魔都架构师 | 全网30W技术追随者&#x1f527; 大厂分布式系统/数据中台实战专家&#x1f3c6; 主导交易系统百万级流量调优 & 车联网平台架构&a…...

LeetCodeHot100(图论篇)

目录 图论岛屿数量题目代码 腐烂的橘子题目代码 课程表题目代码 实现 Trie (前缀树)题目代码 后续内容持续更新~~~ 图论 岛屿数量 题目 给你一个由 ‘1’&#xff08;陆地&#xff09;和 ‘0’&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数…...

【Lecture01】动手开发科研智能体(WIN11系统)

1. 配置win11系统中的环境&#xff0c;安装管理器Choco&#xff1a; # Download and install Chocolatey: powershell -c "irm https://community.chocolatey.org/install.ps1|iex" # Download and install Node.js: choco install nodejs-lts --version"22&qu…...

“packageManager“: “pnpm@9.6.0“ 配置如何正确启动项目?

今天在学习开源项目的时候&#xff0c;在安装依赖时遇到了一个报错 yarn add pnpm9.6.0 error This projects package.json defines "packageManager": "yarnpnpm9.6.0". However the current global version of Yarn is 1.22.22.Presence of the "…...

Git Github Gitee GitLab

Git的工作流程 工作区(Workspace)&#xff1a;电脑本地目录&#xff0c;即平时存放项目代码的地方 暂存区(Index/Stage)&#xff1a;临时存放改动信息的地方 本地仓库(Repository)&#xff1a;存放所有提交的版本数据 远程仓库(Remote)&#xff1a;托管代码的服务器&#x…...

华为设备OSPF配置与实战指南

一、基础配置架构 sysname HUAWEI-ABR ospf 100 router-id 1.1.1.1area 0.0.0.0network 10.1.1.0 0.0.0.255 # 将接口加入区域0 interface GigabitEthernet0/0/1ospf enable 100 area 0.0.0.0 # 华为支持点分十进制区域号bandwidth-reference 10000 # 设置10Gbps参考带宽…...

Paraformer分角色语音识别-中文-通用 FunASR

https://github.com/modelscope/FunASR/blob/main/README_zh.md https://github.com/modelscope/FunASR/blob/main/model_zoo/readme_zh.md PyTorch / 2.3.0 / 3.12(ubuntu22.04) / 12.1 Paraformer分角色语音识别-中文-通用 https://www.modelscope.cn/models/iic/speech_p…...