高可用、容灾、备份和双活经常被混在一起讨论,但它们解决的问题并不相同。备份不能直接提供高可用,双活也不能代替备份。架构设计前必须先确定业务希望抵御哪类故障。
一、高可用
高可用关注局部组件故障时,业务能否继续提供服务。常见手段包括多实例、负载均衡、主从切换、健康检查和自动拉起。
例如两个应用实例部署在不同节点,一个实例故障后,负载均衡器停止向其转发流量。高可用主要处理可预期的组件故障,但不一定能抵御整个机房或地域中断。
二、容灾
容灾关注较大范围灾难发生后,如何在另一个故障域恢复业务。故障可能来自机房断电、网络中断、存储损坏、重大误操作或自然灾害。
容灾设计通常以两个指标约束:
RPO:最多允许丢失多长时间的数据;
RTO:业务必须在多长时间内恢复。
RPO 越接近零、RTO 越短,所需的数据复制、备用资源和自动化程度越高,成本也越高。
三、备份
备份保存某个时间点的数据副本,主要用于恢复误删除、逻辑损坏、勒索攻击或历史数据。数据库主从复制不是备份,因为误删除操作可能迅速同步到从库。
可靠的备份体系应包括:
全量、增量和日志备份策略;
异地或离线副本;
加密、访问控制和保留周期;
不可变备份或防删除机制;
定期恢复验证。
没有恢复演练的备份,只能算“可能存在的数据副本”。
四、主备、双活与多活
主备架构由主站点承载流量,备用站点在灾难时接管。方案相对简单,但备用资源利用率较低,切换需要验证数据和依赖状态。
双活表示两个站点同时承载业务流量。它提高资源利用率并可能缩短切换时间,但会带来数据一致性、全局流量调度、会话状态和发布协调等复杂问题。
多活进一步扩展到多个地域,适合大规模全球业务,但不是普通系统默认需要的方案。
五、常见方案对比
六、设计时先做业务分级
不是所有系统都需要同样的保护等级。可以按照业务影响分级:
核心交易系统:短 RTO、低 RPO、跨故障域部署和定期演练;
重要内部系统:允许短时间中断,采用主备或快速重建;
一般系统:重点保证备份、配置代码化和合理恢复时间。
同一系统内部也可以分层:入口与订单核心高可用,报表和离线任务允许延迟恢复。
七、容易忽略的依赖
容灾不是只复制数据库。还要检查 DNS、证书、密钥、镜像仓库、配置中心、消息队列、第三方接口、监控、账号权限和运维入口。备用站点如果无法获取配置或证书,即使服务器正常也无法接管业务。
八、容灾演练步骤
明确演练目标和影响范围;
确认备份、数据复制和备用容量;
模拟组件或站点故障;
执行流量切换和数据验证;
检查用户体验、监控和告警;
演练回切;
记录实际 RTO、RPO 和问题清单。
总结
高可用解决“局部故障时继续运行”,容灾解决“重大灾难后恢复”,备份解决“数据回到历史正确状态”,双活则是在多个站点同时提供服务。正确方案来自业务影响、RPO、RTO、预算和团队能力,而不是追求听起来最高级的架构。