架构设计五大维度
概述
架构设计需要同时关注五个核心维度:扩展性、高性能、高可用、高安全、伸缩性。本文作为五大维度的总览与导航,概述各维度的核心问题、关键策略及架构演进路径,并通过电商平台案例展示维度间的协同关系。
前置知识
学习目标
- 建立五大维度的全局视图
- 理解水平扩展与垂直扩展的区别与组合策略
- 掌握高可用三阶段演进路径
- 了解各维度的详细学习方向
一、五大维度总览
图表渲染中…
| 维度 | 核心问题 | 关键指标 | 详细文档 |
|---|
| 扩展性 | 业务量增长如何应对? | 支撑用户数/数据量 | 本篇 |
| 高性能 | 如何实现高并发低延迟? | QPS / TPS / RT | 高性能架构设计 |
| 高可用 | 如何避免服务中断? | SLA 99.9%+ | 高可用架构设计 |
| 高安全 | 如何保障系统与数据安全? | 安全事件数 / 加密覆盖率 | 高安全架构设计 |
| 伸缩性 | 如何应对流量波动? | 扩缩容响应时间 | 伸缩性架构与容器编排 |
二、扩展性架构
2.1 两大扩展方向
| 扩展方式 | 定义 | 优势 | 适用场景 |
|---|
| 水平扩展 | 复制应用实例 | 弹性扩缩容、实施简单 | 无状态服务 |
| 垂直扩展 | 拆分业务模块 | 服务独立、数据一致性 | 有状态/复杂业务 |
2.2 组合策略(推荐)
图表渲染中…
先垂直拆分(用户/订单/支付独立服务),再对高流量服务水平扩展(多实例 + 负载均衡)。
三、高性能架构
3.1 核心策略
| 策略 | 说明 | 典型实现 |
|---|
| 缓存 | 多级缓存减少数据库压力 | 浏览器 → CDN → Redis → DB |
| 异步 | 快速响应,后台处理 | 消息队列削峰 |
| 降级 | 高峰期关闭非核心功能 | 关闭推荐/评论 |
| 限流熔断 | 保护系统不过载 | Sentinel / Hystrix |
| 预加载 | 提前加载资源 | 首页预取详情数据 |
3.2 关键指标
- 响应时间(RT):P99 < 200ms
- 吞吐量(QPS/TPS):每秒处理请求数
- 并发数:同时在线处理数
四、高可用架构
4.1 SLA 等级
| SLA | 年停机时间 | 适用场景 |
|---|
| 99.9% | ≤ 8.76 小时 | 一般业务 |
| 99.99% | ≤ 52.6 分钟 | 核心业务 |
| 99.999% | ≤ 5.26 分钟 | 金融/医疗 |
4.2 三阶段演进
| 阶段 | 方案 | 核心思想 | 成本 |
|---|
| 一 | 本地高可用 | 同机房主备切换(Keepalived + VIP) | 低 |
| 二 | 异地容灾 | 主备数据中心异地部署 + DNS 切换 | 中 |
| 三 | 多活架构 | 多机房同时服务 + 全局负载均衡 | 高 |
五、高安全架构
5.1 多层防护体系
| 层级 | 防护措施 | 技术方案 |
|---|
| 网络层 | 防火墙、DDoS 防护、WAF | IP 黑白名单、流量清洗 |
| 应用层 | 认证、授权、安全验证 | JWT / OAuth2 / RBAC / CSRF Token |
| 数据层 | 传输加密、存储加密、备份 | HTTPS / AES / 异地备份 |
| 运维层 | 审计、监控、应急 | 操作日志、漏洞扫描、演练 |
六、伸缩性架构
6.1 弹性伸缩类型
| 类型 | 说明 | K8s 实现 |
|---|
| HPA(水平) | 自动增减 Pod 数 | HorizontalPodAutoscaler |
| VPA(垂直) | 自动调整 CPU/内存 | VerticalPodAutoscaler |
| CA(集群) | 自动增减 Node 数 | Cluster Autoscaler |
6.2 伸缩流程
图表渲染中…
七、实战案例:电商平台架构演进
| 阶段 | 日活 | 架构 | 关键决策 |
|---|
| 初期 | 1,000 | 单体 + 单台 MySQL | 快速上线 |
| 中期 | 10,000 | 垂直拆分(用户/订单/支付) | 服务独立 |
| 后期 | 100,000+ | 水平扩展 + Redis 集群 + 多实例 | 弹性扩容 |
常见问题
| 问题 | 解决方案 |
|---|
| 水平扩展后数据不一致 | Redis 集中缓存 + 分布式锁 |
| 垂直拆分后调用复杂 | 服务治理 + 链路追踪 |
| 扩容速度慢 | K8s HPA 自动化 |
| 缩容导致服务中断 | 优雅停机 + 连接池管理 |
| 多活数据冲突 | 分布式事务 + 数据分片 |
最佳实践
- 先满足需求,再优化架构:避免过早引入复杂方案
- 渐进式演进:单体 → 拆分 → 扩展 → 云原生
- 监控先行:数据驱动决策,而非凭感觉扩容
- 组合策略:垂直拆分保一致性,水平扩展保吞吐量
- 定期压测:验证架构在预期峰值下的表现
延伸阅读
上一篇: 架构设计基础与模式
下一篇: 高性能架构设计 — 性能指标、并发计算、优化策略