主题
高可用架构
高可用(High Availability, HA)指系统在无人工干预下,能长期持续提供服务、避免单点故障导致整体不可用。通常用几个 9(如 99.99%)衡量年度可用时间。核心思路是:消除单点、快速failover、数据不丢。
冗余设计
通过部署多个功能相同的节点,任何一个失效都不影响整体。
- 多副本(Replication):同一服务部署 ≥2 个实例,流量分摊、互为主备。
- 主从复制(Master-Slave):主节点写、从节点读并异步/半同步复制;主故障时从节点可提升。常见于 MySQL、Redis。
- 主主复制(Master-Master):两节点均可读写,双向同步;需解决冲突,适合双活机房。
故障转移
当检测到节点不可用,系统自动把流量/角色切到健康节点。
- 自动故障检测:心跳、健康检查(如 Nacos/Consul 探活)、超时阈值。
- 快速切换(Failover):VIP 漂移、DNS 切换、或注册中心摘流,目标 RTO 尽量短。
- 数据同步:切换前确保新主数据不落后(半同步复制、WAL 同步),避免丢写。
负载均衡
把请求分散到多个节点,提升吞吐并隐藏单点。
- 硬件负载均衡:F5、A10 等专用设备,性能高、成本高。
- 软件负载均衡:Nginx、LVS、HAProxy,灵活、易运维。
- DNS 负载均衡:按地域/轮询解析到不同 IP,粒度粗、生效慢(TTL 限制)。
容灾备份
应对机房级、地域级灾难,保证数据可恢复、业务可重建。
- 数据备份:全量 + 增量、定期校验可恢复性(3-2-1 原则)。
- 异地容灾:同城双活 / 异地多活,RPO 决定能容忍丢失多少数据。
- 灾难恢复(DR):预演切换流程、明确 RTO/RPO 指标,避免"备而不用"。