主备架构是一种 计算高可用(High Availability, HA) 方案,主要用于确保系统在主服务器(Active) 发生故障时,备份服务器(Standby) 可以无缝接管,从而提高系统的可靠性和可用性。
1. 主备架构的基本概念
在主备架构中,通常有两个节点:
- 主节点(Active Node):负责接收和处理所有的请求,提供正常的业务服务。
- 备节点(Standby Node):处于待命状态,持续监控主节点的运行情况。一旦主节点发生故障,备节点将自动接管业务。
- 主备切换(Failover)通常由 高可用性管理组件(如 Keepalived、Pacemaker、HAProxy)或 云服务提供商的高可用机制 负责。
2. 主备架构的分类
(1)冷备(Cold Standby)
特点:
- 备机在正常情况下不运行,仅在主机宕机后手动启动备机。
- 需要手动切换,恢复时间较长(分钟级到小时级)。
适用场景:
- 非关键业务,对高可用性要求不高的系统,如开发测试环境。
(2)温备(Warm Standby)
特点:
- 备机运行但不处理业务,仅定期同步数据。
- 发生故障后,备机需要重新加载部分状态信息,切换时间较快(秒级到分钟级)。
适用场景:
- 业务需要一定的高可用性,如中小型企业应用系统。
(3)热备(Hot Standby)
特点:
- 备机与主机实时同步数据,并保持随时可用的状态。
- 发生故障时,备机可秒级接管业务,实现无缝切换。
适用场景:
- 关键业务系统,如金融交易、数据库高可用、云计算服务等。
3. 关键技术与组件
(1)数据同步
数据库层同步:
- MySQL 主从复制(MySQL Replication)
- PostgreSQL Streaming Replication
- Oracle Data Guard
文件同步:
- Rsync、DRBD(Distributed Replicated Block Device)
(2)主备切换机制
- Keepalived + VRRP(Virtual Router Redundancy Protocol):
通过虚拟 IP(VIP)自动切换主备角色,常用于 Nginx、Redis、MySQL 高可用。 - Pacemaker + Corosync:
适用于 Linux 服务器,常用于企业级高可用集群(HA Cluster)。 - 云厂商提供的 HA 解决方案:
AWS Elastic Load Balancer(ELB)+ Auto Scaling
Google Cloud Load Balancing
Azure Load Balancer
4. 主备架构的优缺点
5. 主备架构的典型应用场景
- 数据库高可用(MySQL、PostgreSQL、Oracle)
MySQL 主从复制 + Keepalived 进行 VIP 绑定,实现高可用数据库。 - 企业级应用系统
ERP、CRM 业务系统,确保核心业务不因服务器故障中断。 - 金融行业
证券交易、支付网关,确保数据一致性与业务连续性。 - Web 服务器
Nginx + Keepalived 组成主备架构,保证网站 7×24 小时可用。
6. 主备架构 vs. 其他高可用架构
7. 总结
- 主备架构是一种经典的高可用方案,适用于关键业务系统,能够在主服务器故障时保证业务连续性。
- 根据业务需求,可以选择冷备、温备或热备,热备是最高级别的高可用方案。
- 主备架构可以结合 Keepalived、Pacemaker、数据库主从复制等技术,实现自动故障切换。
- 相比主主架构和集群架构,主备架构的成本较低,适合中小型企业或关键应用。