Xenon集群部署指南:3节点Raft+架构实现高可用MySQL服务

发布时间:2026/7/29 22:45:49
Xenon集群部署指南:3节点Raft+架构实现高可用MySQL服务 Xenon集群部署指南3节点Raft架构实现高可用MySQL服务【免费下载链接】xenonThe MySQL Cluster Autopilot Management with GTID and Raft项目地址: https://gitcode.com/gh_mirrors/xe/xenonXenon是一款基于Raft协议的MySQL集群自动化管理工具通过GTID和Raft技术实现高可用MySQL服务。本文将详细介绍如何搭建3节点Raft架构的Xenon集群帮助新手用户快速部署稳定可靠的MySQL高可用解决方案。准备工作环境与依赖要求 在开始部署前请确保满足以下环境要求操作系统Linux推荐Ubuntu 16.04或CentOS/RedHatMySQL版本5.7或更高需支持GTID半同步复制Go版本1.8或更高用于构建Xenon硬件配置3台独立服务器每台至少2核4GB内存节点规划 ️本次部署采用3节点架构节点信息如下主机名IP地址角色MAC地址i-lf9g3f5n192.168.0.11Master52:54:39:8c:d1:e3i-0dc5giev192.168.0.2Slave52:54:01:67:c2:82i-arb90jhc192.168.0.3Normal52:54:4f:f7:26:82Step 1安装依赖与获取源码 安装Go环境# Ubuntu sudo apt install golang -y # CentOS/RedHat sudo yum install golang -y获取Xenon源码git clone https://gitcode.com/gh_mirrors/xe/xenon cd xenonStep 2编译Xenon二进制文件 使用make命令编译Xenonmake build编译完成后可在bin目录下看到生成的可执行文件ls bin/ xenon xenoncliStep 3配置SSH互信 为实现节点间通信需配置3台服务器间的SSH免密登录在192.168.0.11Master执行vi /etc/hosts # 添加以下内容 192.168.0.2 i-0dc5giev 192.168.0.3 i-arb90jhc su - ubuntu ssh-keygen ssh-copy-id ubuntui-0dc5giev ssh-copy-id ubuntui-arb90jhc在192.168.0.2Slave执行vi /etc/hosts # 添加以下内容 192.168.0.3 i-arb90jhc 192.168.0.11 i-lf9g3f5n su - ubuntu ssh-keygen ssh-copy-id ubuntui-arb90jhc ssh-copy-id ubuntui-lf9g3f5n在192.168.0.3Normal执行vi /etc/hosts # 添加以下内容 192.168.0.2 i-0dc5giev 192.168.0.11 i-lf9g3f5n su - ubuntu ssh-keygen ssh-copy-id ubuntui-0dc5giev ssh-copy-id ubuntui-lf9g3f5nStep 4配置MySQL环境 ⚙️安装MySQL参考官方文档安装MySQL 5.7或更高版本MySQL 5.7 Install配置MySQL参数创建或修改MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf启用GTID和半同步复制[mysqld] server-id1 gtid_modeON enforce_gtid_consistencyON log_binmysql-bin binlog_formatROW log_slave_updates1 sync_binlog1 innodb_flush_log_at_trx_commit1启动MySQLsu - ubuntu mysqld_safe --defaults-file/etc/mysql/mysql.conf.d/mysqld.conf Step 5配置Xenon集群 ️创建目录结构在所有节点执行sudo mkdir -p /etc/xenon /data/raft /data/mysql /opt/xtrabackup /data/log sudo chown ubuntu:ubuntu /data/ -R配置XenonMaster节点192.168.0.11配置创建配置文件/etc/xenon/xenon.json{ server: { endpoint: 192.168.0.11:8801 }, raft: { meta-datadir: /data/raft, leader-start-command: ip a a 192.168.0.253/32 dev eth0 sudo arping -c 3 -A 192.168.0.253 -I eth0, leader-stop-command: ip a d 192.168.0.253/32 dev eth0 }, mysql: { admin: root, passwd: 123456, host: localhost, port: 3306, basedir: /usr/bin, defaults-file: /etc/mysql/mysql.conf.d/mysqld.cnf }, replication: { user: repl, passwd: repl }, backup: { ssh-host: 192.168.0.11, ssh-user: ubuntu, ssh-passwd: , basedir: /usr, backupdir: /data/mysql, xtrabackup-bindir: /opt/xtrabackup/bin }, rpc: { request-timeout: 500 }, log: { level: INFO } }Slave节点192.168.0.2配置修改server.endpoint为192.168.0.2:8801其他配置与Master类似。Normal节点192.168.0.3配置修改server.endpoint为192.168.0.3:8801其他配置与Master类似。启动Xenon在所有节点执行echo /etc/xenon/xenon.json bin/config.path ./xenon -c /etc/xenon/xenon.json /data/log/xenon.log 21 Step 6初始化Raft集群 在Master节点添加集群成员./xenoncli cluster add 192.168.0.2:8801,192.168.0.3:8801在Slave节点添加集群成员./xenoncli cluster add 192.168.0.11:8801,192.168.0.3:8801在Normal节点添加集群成员./xenoncli cluster add 192.168.0.11:8801,192.168.0.2:8801Step 7配置Keepalived实现VIP漂移 安装Keepalivedsudo apt install keepalived -y # Ubuntu # 或 sudo yum install keepalived -y # CentOS/RedHat配置网络参数在所有节点执行/sbin/ifconfig lo down /sbin/ifconfig lo up echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 /proc/sys/net/ipv4/conf/all/arp_announce /sbin/ifconfig lo:0 192.168.0.252 broadcast 192.168.0.252 netmask 255.255.255.255 up /sbin/route add -host 192.168.0.252 dev lo:0启动Keepalived在Master和Slave节点执行iptables -t mangle -I PREROUTING -d 192.168.0.252 -p tcp -m tcp --dport 3306 -m mac ! --mac-source 52:54:39:8c:d1:e3 -j MARK --set-mark 0x1 iptables -t mangle -I PREROUTING -d 192.168.0.252 -p tcp -m tcp --dport 3306 -m mac ! --mac-source 52:54:01:67:c2:82 -j MARK --set-mark 0x1 iptables -t mangle -I PREROUTING -d 192.168.0.252 -p tcp -m tcp --dport 3306 -m mac ! --mac-source 52:54:4f:f7:26:82 -j MARK --set-mark 0x1 ipvsadm --set 5 4 120 /etc/init.d/keepalived start验证集群状态 ✅查看Xenon日志tail -f /data/log/xenon.log检查Raft集群状态./xenoncli raft status正常情况下会显示当前Leader节点信息以及集群健康状态。常见问题解决 ❓问题1Xenon启动失败解决方法检查配置文件路径是否正确确保config.path文件存在且内容正确指向配置文件。问题2Raft集群无法选举Leader解决方法检查节点间网络连通性确保8801端口开放SSH互信配置正确。问题3MySQL复制异常解决方法检查MySQL配置文件中的GTID和复制相关参数确保主从节点的server-id唯一。总结 通过本文的步骤您已成功搭建了一个3节点Raft架构的Xenon集群实现了MySQL的高可用服务。Xenon通过Raft协议确保集群的一致性结合GTID技术实现数据的可靠复制为您的业务提供稳定的数据库支持。更多高级配置和优化请参考官方文档advanced_article.md【免费下载链接】xenonThe MySQL Cluster Autopilot Management with GTID and Raft项目地址: https://gitcode.com/gh_mirrors/xe/xenon创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考