1. 项目概述
今天想和大家分享一个我在生产环境中实际部署的MySQL高可用集群方案。这个架构结合了NDB Cluster、HAProxy和Keepalived三大组件,实现了数据库的高可用和负载均衡。这套方案已经在我们的电商系统中稳定运行了两年多,经历了多次大促考验。
这个架构的核心优势在于:
- 业务系统无需任何代码改造
- 自动剔除故障节点,实现秒级切换
- 线性扩展能力,轻松应对业务增长
- 成熟的组件组合,社区支持完善
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 架构设计解析
2.1 整体架构设计
我们的架构采用分层设计,各组件职责明确:
code复制业务应用层
↓
[HAProxy+Keepalived] 负载均衡层 (VIP:192.168.10.100)
↓
[SQL节点1] [SQL节点2] (192.168.10.62/63)
↓
[数据节点1] [数据节点2] (192.168.10.64/65)
↑
[管理节点] (192.168.10.61)
这种设计实现了:
- 应用层通过VIP访问,完全透明
- HAProxy实现SQL节点的负载均衡
- Keepalived保证HAProxy自身的高可用
- NDB Cluster保证数据的一致性和高可用
2.2 组件选型考量
NDB Cluster选择原因:
- 真正的共享存储架构,所有SQL节点看到的数据完全一致
- 自动分片和复制,无需人工干预
- 内存计算架构,性能极高
- 自动故障检测和恢复
HAProxy+Keepalived组合优势:
- HAProxy轻量高效,特别适合TCP负载均衡
- Keepalived实现VIP漂移,避免单点故障
- 两者都是成熟开源组件,社区活跃
3. 详细部署指南
3.1 基础环境准备
所有节点(61-65,68-69)都需要执行以下操作:
bash复制# 关闭防火墙和SELinux
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux
