Keepalived + HAProxy 实现高可用架构详解

目录

[🚀Keepalived + HAProxy 实现高可用架构详解](#🚀Keepalived + HAProxy 实现高可用架构详解)

🧠一、核心组件介绍

[1️⃣ HAProxy](#1️⃣ HAProxy)

[2️⃣ Keepalived](#2️⃣ Keepalived)

🔁二、整体架构图

🔍三、工作机制详解

[✅ 正常情况下:](#✅ 正常情况下:)

[⚠️ 主节点宕机时:](#⚠️ 主节点宕机时:)

🛠️四、关键配置示例

[1️⃣ Keepalived 主节点配置](#1️⃣ Keepalived 主节点配置)

[2️⃣ Keepalived 备节点配置](#2️⃣ Keepalived 备节点配置)

[3️⃣ HAProxy 简要配置](#3️⃣ HAProxy 简要配置)

✅五、为什么它能实现"高可用"?

🧪六、测试验证建议

📌七、总结与最佳实践

📚延伸阅读


🚀Keepalived + HAProxy 实现高可用架构详解

在现代互联网架构中,高可用性(High Availability,HA)是衡量系统稳定性的关键指标。Keepalived 与 HAProxy 的结合,是实现四层/七层负载均衡 + 主备切换的黄金组合。本文将深入解析其工作机制、实现方式,并提供部署示意。


🧠一、核心组件介绍

1️⃣ HAProxy

HAProxy 是一款稳定、高性能的 TCP/HTTP 负载均衡器,支持健康检查、SSL、连接池等,是流量分发的核心组件。

2️⃣ Keepalived

Keepalived 通过 VRRP(虚拟路由冗余协议)提供故障转移(Failover)能力。它负责维持一个 Virtual IP(VIP) 的主备绑定关系。


🔁二、整体架构图

复制代码
                +----------------------+
                |     Client (用户)    |
                +----------+-----------+
                           |
                           | 访问 VIP(如 192.168.1.100)
                           ▼
         +------------------------------------------+
         |          Virtual IP: 192.168.1.100        |
         |       (由 Keepalived 绑定在 Master 上)   |
         +--------------------+---------------------+
                              |
                 +------------+------------+
                 |                         |
        +--------v--------+       +--------v--------+
        | HAProxy 主节点  |       | HAProxy 备节点  |
        | Keepalived: Master |     | Keepalived: Backup |
        +-------------------+     +-------------------+
                |                          |
                ▼                          ▼
     后端服务群组(如 Nginx / Web / API / DB 等)

🔍三、工作机制详解

✅ 正常情况下:
  • VIP(如 192.168.1.100)绑定在 主节点(HAProxy + Keepalived Master)上;

  • 客户端所有请求都通过 VIP 访问主 HAProxy,后者将请求转发到后端服务;

  • 主节点定期通过 VRRP 发送心跳信号给备节点,表明自己处于"存活"状态。

⚠️ 主节点宕机时:
  • Keepalived 检测不到心跳;

  • 备节点自动接管 VIP,角色从 Backup 切换为 Master;

  • 客户端请求继续通过相同的 VIP 发起,但实际上已由备节点 HAProxy 接管,实现无缝切换。


🛠️四、关键配置示例

1️⃣ Keepalived 主节点配置
复制代码
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.100
    }
}
2️⃣ Keepalived 备节点配置
复制代码
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.100
    }
}
3️⃣ HAProxy 简要配置
复制代码
frontend http_front
    bind *:80
    default_backend servers

backend servers
    balance roundrobin
    server web1 192.168.1.201:80 check
    server web2 192.168.1.202:80 check

✅五、为什么它能实现"高可用"?

  1. VIP 不变,客户端感知不到主备切换

  2. Keepalived + VRRP 提供稳定的主备机制;

  3. HAProxy 提供强大的健康检查 + 负载均衡能力;

  4. 整个集群冗余设计,即便一台节点宕机,系统依旧可用。


🧪六、测试验证建议

  1. 正常状态: 访问 VIP,确认主节点响应;

  2. 断开主节点网络/关闭 Keepalived: 确认 VIP 是否漂移至备节点;

  3. 恢复主节点后是否回抢: 测试 nopreemptpreempt 的设置;

  4. 观察日志: journalctl -u keepalived / haproxy -db -f /etc/haproxy/haproxy.cfg


📌七、总结与最佳实践

  • 使用真实心跳 + VIP 接管机制 是高可用的本质;

  • VIP 配置不宜冲突,使用独立网卡或 IP 别名(如 eth0:1);

  • 可配合 Redis、MySQL、Nginx 等后端服务共同部署高可用集群;

  • 可以将 VIP 注册到 DNS 中,通过域名访问。


📚延伸阅读


如果你也在构建一套生产级的服务系统,这套 Keepalived + HAProxy 的方案值得首选,稳定、轻量、易部署,是企业私有云架构中的典范。

需要部署脚本、实战演练或集群 YAML 文件?欢迎评论区一起讨论!

相关推荐
用户8815869109117 小时前
AI Agent 协作系统架构设计与实践
架构
鹏北海18 小时前
Qiankun 微前端实战踩坑历程
前端·架构
货拉拉技术18 小时前
货拉拉海豚平台-大模型推理加速工程化实践
人工智能·后端·架构
RoyLin1 天前
libkrun 深度解析:架构设计、模块实现与 Windows WHPX 后端
架构
CoovallyAIHub2 天前
实时视觉AI智能体框架来了!Vision Agents 狂揽7K Star,延迟低至30ms,YOLO+Gemini实时联动!
算法·架构·github
RoyLin2 天前
领域驱动设计:回归本质的工程实践
架构
CoovallyAIHub2 天前
OpenClaw:从“19万星标”到“行业封杀”,这只“赛博龙虾”究竟触动了谁的神经?
算法·架构·github
悟空聊架构2 天前
基于KaiwuDB在游乐场“刷卡+投币”双模消费系统中的落地实践
数据库·后端·架构
over6972 天前
从 URL 输入到页面展示:一次完整的 Web 导航之旅
前端·面试·架构
Mintopia2 天前
软件系统中的订单-审核业务架构分析与实践
后端·架构