{T}

架构设计五大维度 学习笔记

一、架构设计五大维度概述

1.1 五大维度总览

架构设计需要着重关注的五个核心维度:

code
架构设计五大维度
├── 1. 扩展性 (Scalability)
├── 2. 高性能 (High Performance)
├── 3. 高可用 (High Availability)
├── 4. 高安全 (High Security)
└── 5. 伸缩性 (Elasticity)

1.2 各维度核心要点

维度核心问题学习重点应用场景
扩展性业务量增长如何应对?水平/垂直扩展业务快速增长阶段
高性能如何实现高并发?性能优化、妥协策略高流量、实时性要求高
高可用如何避免服务中断?本地高可用、异地容灾、多活对稳定性要求极高的系统
高安全如何保障系统安全?安全流程、安全架构涉及敏感数据、金融交易
伸缩性如何应对流量波动?弹性扩容/缩容流量波动大的场景

二、扩展性架构

2.1 扩展架构核心概念

扩展架构分为两大方向

  1. 应用扩展 - 业务逻辑层的扩展
  2. 数据扩展 - 数据存储层的扩展

2.2 扩展策略对比

扩展方式定义核心优势适用场景
水平扩展复制应用实例弹性扩缩容、实施简单无状态服务、流量突发增长
垂直扩展拆分业务模块服务独立、资源优化、数据一致性有状态服务、复杂业务系统

2.3 最佳实践:组合策略

推荐策略:先垂直拆分,再水平扩展

code
架构演进路径:
单体架构 → 垂直拆分(微服务)→ 水平扩展(集群部署)

示例:
1. 将单体应用拆分为用户、订单、支付服务(垂直拆分)
2. 订单服务流量大,部署多个实例(水平扩展)
3. 支付服务独立部署,保障数据一致性(垂直扩展优势)

详细内容请参考07-伸缩性架构.md


三、高性能架构

3.1 高性能核心概念

定义:系统在单位时间内处理更多请求的能力

关键指标

  • 响应时间:用户请求到响应的时间
  • 吞吐量:单位时间处理的请求数(QPS/TPS)
  • 并发数:同时处理的请求数

3.2 核心策略

策略说明示例
异步处理快速响应用户,后台处理订单提交后立即返回,后台处理
缓存策略多级缓存减少数据库压力浏览器缓存、CDN、Redis、数据库缓存
降级服务高峰期关闭非核心功能双十一关闭推荐功能
限流熔断保护系统不过载超过阈值返回排队页面
预加载提前加载可能需要的资源首页预加载详情页数据

详细内容请参考03-高性能架构.md


四、高可用架构

4.1 高可用核心概念

目标:系统持续提供服务的能力,通常用 SLA(Service Level Agreement)衡量

可用性指标

code
SLA 等级:
- 99.9% = 年停机时间 ≤ 8.76 小时
- 99.99% = 年停机时间 ≤ 52.6 分钟
- 99.999% = 年停机时间 ≤ 5.26 分钟

4.2 高可用方案对比

方案核心思想适用场景成本
本地高可用同一机房内主备切换中小型系统
异地容灾主备数据中心异地部署对稳定性要求高的系统
多活架构多个业务系统同时服务超大规模系统

4.3 架构演进路径

code
高可用架构演进:

阶段一:本地高可用
├── 负载均衡器(Keepalived + VIP)
├── Web服务器集群(主备)
└── MySQL主从复制

阶段二:异地容灾
├── 北京数据中心(主)
├── 上海数据中心(备)
└── DNS智能解析

阶段三:多活架构
├── 北京机房
├── 上海机房
├── 广州机房
└── 全局负载均衡 + 数据同步层

详细内容请参考04-高可用架构.md05-异地容灾与多活架构.md


五、高安全架构

5.1 安全架构核心要素

code
安全架构体系:
├── 网络安全
│   ├── 防火墙
│   ├── DDoS 防护
│   └── WAF
├── 应用安全
│   ├── 身份认证
│   ├── 权限控制
│   └── 数据加密
├── 数据安全
│   ├── 传输加密
│   ├── 存储加密
│   └── 备份恢复
└── 运维安全
    ├── 审计日志
    ├── 漏洞扫描
    └── 应急响应

5.2 多层安全防护

安全层级防护措施技术方案
网络层防火墙、DDoS防护、WAFIP白名单/黑名单、流量清洗
应用层身份认证、权限控制、安全验证JWT、RBAC、CSRF Token、XSS过滤
数据层传输加密、存储加密、备份HTTPS、AES加密、异地备份

详细内容请参考06-高安全架构.md


六、伸缩性架构

6.1 伸缩性核心概念

定义:系统根据负载自动调整资源的能力

两大方向

  • 弹性扩容:负载增加时自动增加资源
  • 弹性缩容:负载减少时自动释放资源

6.2 弹性伸缩类型

伸缩类型说明技术方案
水平自动伸缩(HPA)自动增减应用实例数Kubernetes HPA
垂直自动伸缩(VPA)自动调整资源配额Kubernetes VPA
集群自动伸缩(CA)自动增减节点数Kubernetes CA

6.3 弹性伸缩流程

code
弹性伸缩流程:

监控指标 → 达到阈值 → 计算所需资源 → 申请资源 → 部署新实例 → 加入负载均衡 → 开始服务

详细内容请参考07-伸缩性架构.md


七、实战案例:电商平台架构演进

7.1 第一阶段:单体架构

code
初期架构(日活 1000)

┌─────────────────┐
│   单体应用       │
├─────────────────┤
│ 用户、订单、支付 │
│ 内容、消息       │
└─────────────────┘
        │
        ▼
    单台 MySQL