29.大型软件架构演化大家好!今天我们继续细说软考高级架构知识点。本节我们学习大型软件架构演化的内容第 1 阶段:单体架构
概念:网站初期规模小,应用程序、数据库、文件全部部署在同一台服务器。缺点:性能、存储受单台服务器硬件上限约束,用户量上涨后极易遇到瓶颈,无法水平扩展。第 2 阶段:垂直架构(应用与数据分离)
概念:业务增长,拆分服务器角色,分成应用服务器、文件服务器、数据库服务器三台独立服务器。特点:不同服务器匹配不同硬件需求;应用侧重算力、数据库侧重内存磁盘、文件服务器侧重大容量硬盘。优点:硬件资源按需分配,并发能力与存储空间得到提升。缺点:数据库依旧是单点,访问压力上涨后数据库延迟会拖垮整体系统。第 3 阶段:引入缓存优化性能
概念:遵循二八定律(80% 访问集中 20% 热点数据),引入缓存降低数据库访问压力;分为本地缓存、远程分布式缓存集群。缺点:单台应用服务器请求连接数有限,高峰期应用服务器成为新瓶颈;本地缓存受应用内存限制,存在内存争抢。第 4 阶段:应用服务器集群 + 负载均衡
概念:应用服务器水平扩展,搭建集群;增加负载均衡调度器,把用户请求分发到集群内多台应用服务器。优点:消除应用服务器单点瓶颈,实现系统弹性伸缩,支持更多并发用户。缺点:数据库依然是整个系统最大瓶颈,尚未解决数据层压力。第 5 阶段:数据库读写分离
概念:利用数据库主从复制,搭建主库(写操作)、从库(读操作);应用通过统一数据访问模块区分读写请求。
第 6 阶段:CDN + 反向代理加速
概念:引入 CDN、反向代理,依靠缓存尽早向用户返回静态资源。优点:改善跨地域用户访问速度,减轻后端应用集群压力,降低用户流失。缺点:主要优化静态资源,无法解决动态业务、数据库层面压力。第 7 阶段:分布式文件系统 + 分布式数据库
概念:当单台数据库、文件服务器无法承载数据规模时,进行拆分;文件使用分布式文件系统,数据库做分库分表 / 业务分库。优点:突破单机存储限制,支持海量文件与海量数据存储。缺点:分布式带来事务、数据一致性、运维复杂度上升;跨库查询难度增加。第 8 阶段:引入 NoSQL + 搜索引擎
概念:业务场景多样化,关系型数据库难以满足全部需求;引入 NoSQL 存储非结构化数据、搜索引擎解决复杂全文检索;统一数据访问模块屏蔽多种数据源差异。特点:多类型数据存储混合架构。优点:适配多样化数据场景,提升检索能力,充分发挥不同存储引擎优势。缺点:系统组件增多,架构复杂度、运维难度上升;需要掌握多种存储技术。第 9 阶段:业务拆分(水平业务划分)
概念:按照产品线、业务域拆分单体应用,拆分为多个独立部署应用(订单、用户、商品等);应用之间通过链接、消息队列、共享数据库交互。优点:业务隔离,独立迭代发布,团队并行开发,故障影响范围缩小。缺点:多个应用直接连接数据库,大量数据库连接消耗,容易引发连接资源耗尽。第 10 阶段:分布式服务(微服务雏形)
概念:抽取各个应用通用重复业务(用户管理、商品服务),独立部署为公共分布式服务;前端应用只处理界面,通过远程调用复用公共服务。特点:业务能力下沉为可复用服务,前后端、通用业务与业务应用解耦。优点:服务复用,消除大量重复开发;减少数据库直接连接数量;架构具备高度弹性,支撑超大规模集群。缺点:分布式架构复杂度最高,需要处理服务治理、远程调用、超时、分布式事务、服务监控等一系列问题。辅助背诵顺口溜
一单二垂三缓存,四集群五读写分;六 cdn 七分布存,八搜九拆十服务。思维导图
非常感谢大家一直以来的支持与陪伴!如果这期内容对你有收获、有帮助,欢迎点赞、关注,持续解锁更多IT架构干货,我们下期再见!