Java开发经验——系统迁移经验

摘要

本文全面介绍了系统迁移的各个关键步骤和策略,包括需求分析、数据迁移、系统集成、功能优化、业务连续性保障、用户迁移、性能测试、切换与回滚机制、文档转移等。同时,探讨了通用迁移方案、挑战应对措施、不同规模系统的迁移策略,以及数据库、服务和接口迁移的实践经验。

1. 系统迁移的主要部分

系统迁移是一个复杂的过程,尤其是将老系统替换为新系统时,需要充分考虑业务连续性、数据完整性和系统稳定性。以下是 系统迁移的关键部分 和一个 通用迁移方案,帮助规划迁移过程。

1.1. 需求分析与目标定义

  • 明确为什么需要迁移(例如:技术落后、性能不足、功能需求变化)。
  • 确定迁移后的目标系统需要解决哪些问题,例如:
    • 提高性能。
    • 支持新功能。
    • 降低运维成本。

1.2. 迁移范围界定

  • 需要迁移的数据:历史数据、当前生产数据。
  • 需要迁移的功能模块:哪些模块保留?哪些模块需要重构?
  • 系统接口:与上下游系统的对接和兼容性需求。
  • 用户:迁移后用户如何过渡和适配新系统。

1.3. 数据迁移

  • 数据清洗:确保迁移的数据准确、完整。
  • 数据映射:老系统与新系统的字段和表结构可能不同,需要建立映射规则。
  • 数据验证:验证迁移后数据的正确性和完整性。

1.4. 系统集成

  • 新系统与现有的外围系统或第三方服务对接,例如支付网关、ERP 系统等。
  • 确保接口协议和数据格式的一致性。

1.5. 功能迁移与优化

  • 老系统的功能是否需要 1:1 迁移,或在新系统中重构。
  • 评估哪些功能可以废弃,哪些需要优化或增强。

1.6. 业务连续性(非常重要)

  • 确保在迁移过程中业务不中断或影响最小。
  • 设计灰度发布、蓝绿部署或双系统并行运行(老系统与新系统同时上线一段时间)。

1.7. 用户迁移

  • 用户账号和权限迁移。
  • 用户培训和新系统使用指南。
  • 用户反馈的收集和快速响应。

1.8. 系统性能与稳定性测试

  • 在迁移前对新系统进行全面的性能、压力、兼容性和安全测试。
  • 模拟真实环境,确保新系统上线后能够稳定运行。

1.9. 切换与回滚机制

  • 明确系统切换的步骤(如停机时间、数据同步)。
  • 制定回滚策略:如果新系统出现问题,能否快速回滚到老系统。

1.10. 文档与知识转移

  • 系统设计文档和操作手册的更新。
  • 对技术团队和业务团队的培训。

2. 系统迁移通用方案

以下是一个系统迁移的通用流程,适用于大多数场景:

2.1. 迁移前阶段

调研与评估

  • 评估老系统的现状:技术架构、依赖关系、存在的问题。
  • 确定新系统的技术选型和功能设计。
  • 制定迁移范围、计划和时间表。

风险评估

  • 确定迁移过程中可能出现的风险(如数据丢失、业务中断)。
  • 设计风险应对措施。

环境搭建

  • 准备新系统的开发、测试和生产环境。
  • 确保新环境的资源(服务器、数据库、中间件)充足且稳定。

2.2. 数据迁移阶段

数据分析

  • 分析老系统的数据结构,设计迁移规则(字段映射、数据清洗、数据分区等)。

数据迁移工具

  • 使用 ETL 工具(如 DataX、Sqoop)或自定义迁移脚本实现数据导入。

数据验证

  • 验证迁移数据的完整性和一致性。
  • 对迁移后的数据进行抽样检查或编写校验程序。

2.3. 新系统开发与测试阶段

开发与调试

  • 开发新系统的功能模块。
  • 确保与老系统接口对接和业务逻辑兼容。

测试

  • 功能测试:验证功能的正确性。
  • 性能测试:确保新系统能承受实际业务场景的压力。
  • 回归测试:确认修改对已有功能无负面影响。

2.4. 迁移实施阶段

灰度发布

  • 部分用户或部分业务先迁移到新系统。
  • 观察新系统的运行状态并收集反馈。

全量切换

  • 在业务低峰期进行系统切换。
  • 停止老系统的写操作,完成数据增量同步。
  • 更新 DNS、路由或负载均衡配置,使流量指向新系统。

回滚机制

  • 在切换前确保老系统的环境和数据一致性。
  • 如果新系统出现严重问题,可以快速回滚。

2.5. 迁移后阶段

监控与优化

  • 实时监控新系统的性能和稳定性。
  • 修复用户反馈的问题。

老系统退役

  • 等确认新系统稳定后,逐步下线老系统。
  • 对老系统的数据和代码进行归档备份。

总结与文档更新

  • 总结迁移过程中的经验教训。
  • 更新新系统的运维和操作文档。

3. 系统迁移的典型挑战与应对措施

3.1. 数据丢失或不一致

  • 应对措施:使用事务机制、数据校验工具,执行增量和全量数据同步。

3.2. 业务中断

  • 应对措施:设计零停机切换(蓝绿部署)、灰度发布。

3.3. 兼容性问题

  • 应对措施:模拟真实场景进行全面测试,保留老系统和新系统的接口对接能力。

3.4. 用户适应问题

  • 应对措施:提前对用户进行培训,并提供易于操作的迁移说明。

4. 适用场景的迁移策略

4.1. 小型系统迁移

  • 直接切换(Big Bang Approach):新系统开发完成后一次性上线。
  • 适合低风险的小型业务系统。

4.2. 大型复杂系统迁移

  • 阶段式迁移(Phased Migration):按模块或按业务功能逐步迁移。
  • 双系统并行(Parallel Running):老系统和新系统同时运行,逐步过渡。

4.3. 高可用系统

  • 蓝绿部署:保留两套生产环境,随时切换。
  • 灰度发布:先让小范围用户使用新系统,确保无误后逐步扩展。

5. 数据库迁移经验

数据库迁移是系统升级或架构调整中常见的挑战之一,涉及到数据完整性、业务连续性和性能等多个方面。以下是数据库迁移的关键步骤和经验总结:

5.1. 迁移前准备

明确迁移需求

  • 原因:如数据库版本升级、性能优化、分库分表、数据结构调整、云数据库迁移等。
  • 目标:确保数据一致性和业务不中断,优化性能或扩展系统能力。

数据梳理

  • 数据量评估:统计数据表总量、大小、行数等,评估迁移所需时间。
  • 数据依赖分析:明确表与表之间的外键、触发器、视图、存储过程等依赖关系。
  • 数据分布:分析冷热数据分布,决定是否对历史数据进行归档处理。

环境准备

  • 准备好迁移环境:源库和目标库的连接、网络带宽、磁盘空间等。
  • 确保目标数据库支持源数据库的功能(如存储过程、索引类型)。

制定迁移策略

  • 全量迁移:一次性迁移所有数据(适合静态数据或业务停机时)。
  • 增量迁移:逐步迁移新增或变更的数据(适合实时性要求高的业务)。
  • 双写方案:同时写入源库和目标库,保障数据同步。

5.2. 迁移实施方案

数据结构迁移

  • 迁移数据库的表结构、索引、外键、视图、存储过程等。
  • 注意不同数据库系统的语法差异(如MySQL到PostgreSQL的类型映射)。

数据迁移

  • 全量迁移
    • 导出数据(如使用mysqldumppg_dump)。
    • 导入目标库并验证。
  • 增量迁移
    • 使用数据同步工具(如Canal、Debezium、GoldenGate)。
    • 监听源库变更数据(CDC机制)并实时同步。

业务流量迁移

  • 在迁移前,确保目标库已具备生产环境的能力。
  • 灰度发布:分批次切换读写流量,观察稳定性。

5.3. 迁移过程中的注意事项

数据一致性

  • 数据校验:通过校验工具(如自定义SQL或工具如pt-table-checksum)比对源库和目标库数据是否一致。
  • 校验点:数量一致性、字段值一致性、数据范围一致性。

性能监控

  • 迁移期间监控源库、目标库的性能,避免因迁移导致服务性能下降。
  • 对大表迁移设置限速,防止占用过多I/O资源。

容错机制

  • 如果迁移中断,应确保能从断点继续,而无需重新迁移全量数据。
  • 数据回滚策略:针对迁移失败的情况设计回滚方案。

5.4. 迁移后验证与优化

数据验证

  • 验证所有表的数据量、字段值和索引是否与源库一致。
  • 验证目标库的查询性能是否符合预期。

功能验证

  • 验证所有依赖数据库的应用程序功能是否正常。
  • 运行测试用例,检查数据库的事务性、查询逻辑和存储过程是否正确。

压力测试

  • 对目标库进行读写压力测试,观察性能表现和稳定性。

5.5. 迁移后清理

关闭旧数据库

  • 在确认迁移成功后,逐步停用旧数据库,释放资源。
  • 对旧库进行备份存档,以备回滚或数据追溯需求。

优化目标数据库

  • 调整目标数据库的索引、分区、缓存等配置,以适应新的业务需求。
  • 如果目标数据库是分布式架构,进一步优化分库分表策略。

5.6. 数据迁移常见问题及解决方案

数据丢失问题

  • 原因:网络中断、数据导入失败。
  • 解决:采用断点续传工具(如同步工具自带的恢复机制)。

迁移后性能下降

  • 原因:索引缺失、目标库配置不当。
  • 解决:调整索引、优化查询语句、提升目标库硬件配置。

表锁问题

  • 原因:大表迁移占用资源。
  • 解决:对大表分批迁移(按时间分区或主键范围)。

语法兼容性问题

  • 原因:数据库之间的差异(如MySQL和PostgreSQL)。
  • 解决:使用工具自动转换DDL(如pgloader)或手动调整脚本。

5.7. 数据库迁移经验总结

  1. 分阶段迁移,避免大爆炸:一次性迁移风险较高,建议按业务模块或数据分区逐步迁移。
  2. 充分备份与演练:迁移前,做好全量备份,并在测试环境多次演练迁移方案。
  3. 迁移工具选择:常用迁移工具:
    • MySQLmysqldumpmydumper/myloader、Percona Toolkit。
    • PostgreSQLpg_dumppg_restorepglogical
    • 分布式数据库:Apache Kafka、Databricks Delta Live Tables。
    • 云迁移:AWS DMS、GCP Database Migration Service。
  1. 避免业务停机:对于高可用系统,采用双写或增量同步方案,最大化减少迁移期间的业务中断。
  2. 沟通与协作:数据库迁移涉及开发、运维、DBA和业务方等多个角色,确保各方沟通顺畅。

6. 服务迁移经验

微服务迁移是将单体应用或传统系统转化为微服务架构的过程,目标是实现系统的高可用性、灵活性和扩展性。以下是微服务迁移的关键步骤和实战经验:

6.1. 微服务迁移前准备

明确迁移目标

  • 为什么迁移?是为了支持弹性扩展、快速交付,还是技术栈更新?
  • 确定优先目标:如性能优化、独立部署、团队解耦。

业务分析与拆分

  • 梳理业务模块:根据业务功能和数据依赖划分系统边界。
  • 识别高频和核心模块:优先迁移高负载、变更频繁或业务独立性高的模块。

技术选型

  • 微服务框架:如Spring Boot、Spring Cloud、Micronaut。
  • 服务注册与发现:如Eureka、Consul、Zookeeper。
  • API网关:如Spring Cloud Gateway、Kong、Traefik。
  • 数据同步与存储:选择分布式数据库或数据同步工具。

6.2. 微服务迁移策略

渐进式迁移

  • 将单体系统逐步拆解为微服务,每次只迁移一个模块。
  • 优点:风险小,业务影响小,迁移过程中可以持续服务。

混合架构

  • 在迁移完成前,保留单体和微服务的共存。
  • 使用网关或中间件实现流量分发,确保旧系统与新服务的兼容。

数据解耦

  • 数据库拆分:根据业务模块将单体数据库按表拆分为多个服务的独立数据库。
  • 数据同步:采用CDC(Change Data Capture)工具,如Debezium或Canal,保证数据实时同步。

6.3. 微服务迁移实施

拆分单体应用

  1. 按业务模块拆分
    • 确定每个模块的核心功能和边界。
    • 将业务逻辑和数据操作迁移到独立的微服务中。
  1. 按团队或业务优先级拆分
    • 优先拆分瓶颈模块(如订单处理、用户管理)。
    • 分配独立的开发和维护团队。

接口重构

  • 定义清晰的API接口(REST、gRPC)。
  • 引入API网关管理外部请求,简化服务暴露。

服务注册与通信

  • 实现服务注册与发现,确保动态扩展。
  • 选择通信机制:
    • 同步:HTTP、gRPC。
    • 异步:消息队列(如Kafka、RabbitMQ)。

数据库处理

  • 单体数据库可能会成为瓶颈,需要进行拆分:
    • 垂直拆分:按业务模块拆分(如用户服务和订单服务)。
    • 水平拆分:按数据量拆分(如分库分表)。
  • 服务独立后,每个服务应有自己的数据库,减少跨服务依赖。

6.4. 微服务测试与验证

单元测试

  • 针对每个微服务编写独立的单元测试,确保功能正确。

集成测试

  • 验证服务间的通信和依赖,检查数据的一致性和接口调用。

压力测试

  • 测试新微服务的性能和扩展性,找出瓶颈。

回归测试

  • 验证迁移后旧功能是否正常工作,避免业务中断。

6.5. 微服务上线与优化

灰度发布

  • 分阶段将流量引入新微服务,逐步验证系统稳定性。
  • 使用A/B测试或蓝绿部署策略降低风险。

监控与报警

  • 实现全链路监控,监控服务调用链(如Zipkin、Jaeger)。
  • 设置健康检查和报警机制,实时监控服务状态。

性能调优

  • 优化微服务的容器化部署和资源分配。
  • 对高频调用服务增加缓存(如Redis)。

6.6. 迁移后管理

持续集成与交付(CI/CD)

  • 为每个微服务建立独立的CI/CD流水线,支持快速迭代。

服务治理

  • 使用服务治理工具(如Istio、Linkerd)管理服务的流量、限流、熔断和负载均衡。

技术债清理

  • 清理旧系统的残余代码和无用服务。
  • 完全关闭单体系统,释放资源。

6.7. 微服务迁移经验总结

  1. 优先迁移高收益模块:如订单服务、用户服务等高流量或高变更需求的模块,迁移收益显著。
  2. 避免跨服务强依赖:确保微服务之间的低耦合,避免频繁的跨服务调用。
  3. 重视数据一致性:对需要强一致性的场景,采用分布式事务方案(如Saga模式或TCC)。
  4. 从简单到复杂:先拆分简单的、独立性高的模块,为复杂模块积累经验。
  5. 团队协作与沟通:微服务迁移涉及多团队协作,提前沟通边界和依赖,避免重复工作。

7. 接口迁移经验

接口迁移是系统升级、架构调整或技术栈演进过程中非常常见的一项工作。以下是接口迁移的关键步骤和经验总结:

7.1. 迁移准备

明确需求和目标

  • 了解迁移的原因(如性能优化、技术升级、兼容性改造等)。
  • 明确迁移目标(如功能一致性、性能提升、减少耦合等)。

评估现有接口

  • 接口依赖分析:梳理接口的上下游依赖,明确调用方和依赖方。
  • 数据流和功能点:了解接口的入参、出参、逻辑处理,以及接口的非功能性要求(如性能、容错性)。
  • 技术栈差异:评估旧接口与新接口在技术栈上的兼容性(如协议、数据格式、调用方式)。

7.2. 设计迁移方案

接口对齐

  • 确保新接口在功能和数据上的一致性,必要时可以新增字段或调整数据结构。
  • 如果接口逻辑发生变化,应提供详细文档说明。

平滑迁移

  • 双轨方案:旧接口和新接口同时运行一段时间,逐步切换流量。
  • 降级/回滚机制:为新接口设计降级和回滚逻辑,确保迁移失败时系统可用。

向后兼容性

  • 确保新接口能够兼容旧接口的调用方式,避免一次性强制调整所有调用方。

7.3. 实施迁移

编码与测试

  • 编码规范:保证新接口的代码质量,尤其是日志和错误处理。
  • 全面测试
    • 功能测试:确保新接口功能正确。
    • 性能测试:验证新接口的性能是否满足需求。
    • 回归测试:保证旧接口和其他功能不受影响。

数据迁移

  • 如果接口涉及底层数据结构变化,需要设计可靠的数据迁移方案。
  • 数据迁移应支持增量迁移全量迁移

7.4. 上线和监控

分阶段上线

  • 灰度发布:按照一定的用户比例或调用量逐步切换到新接口。
  • 流量分离:为新旧接口设置独立的流量入口,方便调试和监控。

监控与报警

  • 实时监控新接口的调用情况、性能指标和错误率。
  • 设置报警机制,及时发现问题。

7.5. 迁移后优化

清理旧接口

  • 在确认调用方全部迁移后,安全下线旧接口。
  • 清理相关代码、文档和依赖。

持续改进

  • 收集新接口的使用反馈,进一步优化设计或实现。
  • 总结迁移经验,改进后续迁移流程。

7.6. 接口迁移经验总结

  1. 分批推进,降低风险:一次性迁移全量流量风险较大,建议按业务线或用户分组逐步切换。
  2. 日志是关键:在新接口上线初期,详尽的日志记录可以帮助快速定位问题。
  3. 向后兼容性原则:如果接口服务多个调用方,尽可能保证向后兼容,减少对调用方的改动需求。
  4. 加强沟通:接口迁移往往涉及多方协作,提前与调用方、测试团队和运维团队沟通,减少协作成本。
  5. 自动化工具:使用自动化工具(如接口测试工具、流量复制工具)加速迁移和测试流程。

博文参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/942062.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb - ⭐ AOP 面相切面编程原理及用户校验功能实战

一、概述 定义: AOP (Aspect Oriented Programming 面向切面编程) ,一种面向方法编程的思想 功能:管理 bean 对象的过程中,通过底层的动态代理机制对特定方法进行功能的增强或改变 实现方式:动态代理技术&#xff0c…

MFC案例:图片文件转图标(ico)格式

本案例程序目的是将一般图像文件转换成图标格式(ico)。实现起来不是很复杂,这里为了介绍MFC的具体使用方法,在程序界面上分成几个功能块,包括:打开图像文件、选择ICON大小、转换、预览、保存等。相关具体步骤如下: 一、…

Scala_【2】变量和数据类型

第二章 注释标识符的命名规范命名规则关键字 变量字符串输出数据类型关系变量和数据类型整数类型(Byte、Short、Int、Long)浮点类型(Float、Double)字符类型(Char)布尔类型(Boolean)…

R语言数据分析案例46-不同区域教育情况回归分析和探索

一、研究背景 教育是社会发展的基石,对国家和地区的经济、文化以及社会进步起着至关重要的作用。在全球一体化进程加速的今天,不同区域的教育发展水平呈现出多样化的态势。这种差异不仅体现在教育资源的分配上,还表现在教育成果、教育投入与…

8086汇编(16位汇编)学习笔记03.汇编指令

8086汇编(16位汇编)学习笔记03.汇编指令-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 指令种类 数据传送指令算数运算类指令位操作类指令串操作类指令控制转移类指令处理器控制类指令 数据传送类指令 **传送类指令不影响标志位,**除了标志位传…

Antd react上传图片格式限制

限制分辨率&#xff08;像素&#xff09; <a-upload :before-upload"beforeUpload">// 上传图片宽高比例限制const beforeUpload file > {return new Promise((resolve, reject) > {// // 图片类型限制// let isJpgOrPng file.type image/png || fil…

Confluent Cloud Kafka 可观测性最佳实践

Confluent Cloud 介绍 Confluent Cloud 是一个完全托管的 Apache Kafka 服务&#xff0c;提供高可用性和可扩展性&#xff0c;旨在简化数据流处理和实时数据集成。用户可以轻松创建和管理 Kafka 集群&#xff0c;而无需担心基础设施的维护和管理。Confluent Cloud 支持多种数据…

StartAI图生图局部重绘,让画面细节焕发新生!!

在设计的世界里&#xff0c;每一个细节都承载着我们的创意与心血。然而&#xff0c;有时我们总会遇到一些不尽如人意的画面细节&#xff0c;它们如同瑕疵般破坏了整体的和谐与美感。今天&#xff0c;我要向大家推荐一款强大的工具——StartAI的局部重绘功能&#xff0c;它正是我…

易语言 OCR 文字识别

一.引言 文字识别&#xff0c;也称为光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;&#xff0c;是一种将不同形式的文档&#xff08;如扫描的纸质文档、PDF文件或数字相机拍摄的图片&#xff09;中的文字转换成可编辑和可搜索的数据的技术。随着技…

重温设计模式--单例模式

文章目录 单例模式&#xff08;Singleton Pattern&#xff09;概述单例模式的实现方式及代码示例1. 饿汉式单例&#xff08;在程序启动时就创建实例&#xff09;2. 懒汉式单例&#xff08;在第一次使用时才创建实例&#xff09; 单例模式的注意事项应用场景 C代码懒汉模式-经典…

ArKTS基础组件3

一.PatternLock 图案密码锁组件&#xff0c;以九宫格图案的方式输入密码&#xff0c;用于密码验证场景 属性: sideLength:设置组件的宽度和高度&#xff08;宽高相同&#xff09;。设置为0或负数时组件不显示。 参数名类型必填说明valueLength是组件的宽度和高度。默认值&a…

python2:数据、运算符与表达式

一&#xff0c;数据类型&#xff1a; 数据类型是计算机对现实中数据的抽象&#xff0c;不同的数据类型其存储格式、数据范围、 计算要求都各不相同。 Python中的数据类型可以分为以下三类 基础类型&#xff1a;字符串(str)、整数(int)、实数(float)、布尔(bool)、复数(compl…

tortoisegit推送失败

tortoisegit推送失败 git.exe push --progress -- "origin" testLidar:testLidar /usr/bin/bash: gitgithub.com: No such file or directory fatal: Could not read from remote repository. Please make sure you have the correct access rights and the reposit…

pyinstaller打包资源文件和ini配置文件怎么放

1.如果出现无法成功完成操作&#xff0c;因为文件包含病毒或潜在的垃圾软件&#xff0c;说明你的版本太高&#xff0c;更换pyinstaller版本。 pip install pyinstaller6.2.02.一开始打包的时windows下尽量选择打成文件夹的并且要是带命令行窗口的&#xff0c;容易查看错误。 …

autMan奥特曼机器人-autMan的PHP环境

直装版请自行安装php环境。 docker版本预置了php环境&#xff0c;如下图&#xff1a; 如果使用插件"test php"测试环境时&#xff0c;实时日志有报错如下&#xff1a; 可进入终端&#xff0c;输入两条命令 apk add curl apk add php-curl

uniApp打包H5发布到服务器(docker)

使用docker部署uniApp打包后的H5项目记录&#xff0c;好像和VUE项目打包没什么区别... 用HX打开项目&#xff0c;首先调整manifest.json文件 开始用HX打包 填服务器域名和端口号~ 打包完成后可以看到控制台信息 我们可以在web文件夹下拿到下面打包好的静态文件 用FinalShell或…

【Leetcode】1705. 吃苹果的最大数目

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; 有一棵特殊的苹果树&#xff0c;一连 n n n 天&#xff0c;每天都可以长出若干个苹果。在第 i i i 天&#xff0c;树上会长出 a p p l e s [ i ] apples[i] apples[i] 个苹果&a…

4、数据结构与算法解析(C语言版)--栈

栈的数据存储遵循“后进先出的规则”&#xff0c;这在计算机里面是非常有用的&#xff0c;比如word等编辑软件的"撤销"功能&#xff0c;就是使用栈进行实现的。 1、创建项目 main.h #ifndef _MAIN_H #define _MAIN_H#include <stdio.h> #include <stdlib.…

施耐德变频器ATV320系列技术优势:创新与安全并重

在工业自动化领域&#xff0c;追求高效、安全与智能已成为不可阻挡的趋势。施耐德变频器ATV320系列凭借其强大的设计标准和全球认证&#xff0c;成为能够帮助企业降低安装成本&#xff0c;提高设备性能的创新解决方案。 【全球认证&#xff0c;品质保障】ATV320 系列秉持施耐德…

【软考高级】系统架构设计师复习笔记-精华版

文章目录 前言0 系统架构设计师0.1 考架构还是考系分0.2 架构核心知识0.3 架构教材变化 1 计算机操作系统1.1 cpu 组成1.2 内核的五大功能1.3 流水线技术1.4 段页式存储1.5 I/O 软件1.6 文件管理1.7 系统工程相关 2 嵌入式2.1 嵌入式技术2.2 板级支持包&#xff08;BSP&#xf…