高可用集群
“高可用集群”(High Availability Cluster,简称 HA 集群)是一种通过多个服务器协作工作来确保系统在部分节点故障时仍能持续提供服务的架构方案。
高可用集群的目标是:
尽可能减少单点故障(SPOF)并提供连续的服务可用性。
当某个节点宕机、异常、断电等,其他节点会自动接管服务,用户几乎无感知。
高可用集群是现代 IT 架构中确保服务连续性的核心手段,常结合如下技术构建:
● 服务层高可用:Nginx、HAProxy + Keepalived
● 数据层高可用:MySQL MGR、Redis Sentinel
● 容器平台高可用:Kubernetes 多 Master 节点
二、典型架构组成
- 节点(Nodes)
● 多台部署有相同服务的服务器。
● 一般包含主节点(Master)和备用节点(Slave/Backup)。 - 心跳机制(Heartbeat)
● 用于节点间检测是否存活(通常通过网络 ping 或专用通道)。 - VIP(Virtual IP)
● 一个浮动的虚拟 IP 地址指向当前活跃节点,实现客户端无感知访问。 - 服务监控与切换(Failover)
当检测到主节点故障,备用节点自动接管 VIP 与服务。 - 共享存储或数据同步
● 保证节点间服务所需数据的一致性(如:NFS、Ceph、MySQL 主从等)。
三、常见高可用集群方案
场景 技术方案 描述
Web 服务 Nginx + Keepalived 实现 Web 层的负载均衡和主备
数据库 MySQL MGR / MySQL 主从 + MHA 数据自动同步,主从切换
分布式缓存 Redis Sentinel / Redis Cluster 保证 Redis 集群自动故障转移
消息队列 Kafka 多节点 + Zookeeper Kafka Broker 故障后自动转移
容器编排 Kubernetes(K8s) 自带高可用 Master 和调度机制
四、Keepalived + Nginx 示例架构(经典 Web 高可用)
+------------------+| Client |+--------+---------+|v+---------------+| VIP: x.x.x.x |+---------------+| |+------+-----+ +-----+------+| Master Nginx | | Backup Nginx |+--------------+ +-------------+| |+-------+--------+-------+--------+| | |
WebApp1 WebApp2 WebApp3
● Keepalived 维护 VIP 的归属
● 主 Nginx 故障,VIP 自动漂移至备用 Nginx
五、高可用集群 vs 负载均衡 vs 容灾备份
比较点 高可用集群(HA) 负载均衡(LB) 容灾备份(DR)
目标 不间断服务 分散流量、提高并发能力 灾难时恢复业务
故障自动切换 ✅ ✅ ❌(通常需手动)
成本 中 中 高
数据一致性 强(常需同步) 视情况而定 异步备份,可能丢失部分数据