1.
架构概述与准备工作
说明:部署两地(江苏、香港)各1-2台应用+1台数据库节点,前端采用两地各自HAProxy+keepalived做入口,DNS做权重/故障切换。准备清单:Linux(CentOS/Ubuntu)、公网或VPN互通、SSH密钥、监控(Prometheus/Grafana)、备份存储(对象存储或NAS)。
2.
负载均衡器部署(HAProxy+keepalived)
操作步骤:1) 安装:apt install -y haproxy keepalived(或yum)。2) HAProxy示例 /etc/haproxy/haproxy.cfg:frontend http-in bind *:80 default_backend app_backend;backend app_backend balance roundrobin server app1 10.0.0.1:80 check。3) keepalived示例 /etc/keepalived/keepalived.conf:设置vrrp_instance、state MASTER/BACKUP、virtual_ipaddress。4) 启动并开机:systemctl enable --now haproxy keepalived。
3.
应用节点与健康检查配置
步骤:1) 在应用节点部署Nginx或应用服务,保证 /health 返回200。2) 在HAProxy backend增加 option httpchk GET /health 和 check。3) 验证:curl http://vip/health 在主备切换时响应连续可用。4) 自动化:写脚本 /usr/local/bin/check_sync.sh 定期校验版本并通过Ansible推送。
4.
DNS与流量调度策略
步骤:1) 使用DNS提供商支持的权重或GeoDNS,将江苏优先权重设高,香港作为备用或低权重。2) 将TTL设置为60-120秒以便快速切换。3) 故障切换:当keepalived检测到主站不可达,通过API调整DNS或依赖低TTL使流量转到另一地。4) 可选Anycast或全局负载均衡器(如Cloud CDN)以减小跨境延迟。
5.
数据库复制与备份策略
操作细则:1) MySQL采用主-主或主-从(GTID)复制,实操:在master执行 SHOW MASTER STATUS;在slave配置 CHANGE MASTER TO MASTER_HOST='master', MASTER_USER='repl', MASTER_PASSWORD='pwd', MASTER_AUTO_POSITION=1;START SLAVE。2) 半同步:安装semisync插件减少丢失。3) 文件备份:用rsync + lz4压缩,脚本:rsync -az --delete /var/www/ user@backup:/data/site && tar -I lz4 -cf /backup/site-$(date +%F).tar.lz4 /data/site。4) 定期快照与保留策略(7/30/365天)。
6.
恢复演练与监控告警
步骤:1) 恢复流程演练:从对象存储拉取最近快照,挂载到临时主机,导入MySQL并重放binlog。2) 自动化故障检测:Prometheus抓取keepalived/HAProxy/nginx指标,设置Alertmanager告警并触发脚本切换DNS。3) 日志与一致性校验:每天cron跑pt-table-checksum或校验脚本,发现差异触发同步。
7.
问:江苏与香港站群如何在保证可用同时控制跨境延迟?
答:策略是读写分离+本地读优先。写操作到延迟更低的主库(可选使用香港主或江苏主),读操作在本地节点就近读取。用ProxySQL做路由,设置读写规则,DNS TTL短使故障切换迅速。
8.
问:如何保证备份不丢数据且恢复时间可控?
答:采用组合策略:数据库使用GTID复制+半同步减少数据丢失;每日热备并保存binlog,以便点位恢复;文件用rsync增量+快照,制定RTO/RPO并演练,测试恢复时间并优化脚本。
9.
问:部署中常见风险与成本优化有哪些?
答:风险包括网络跨境抖动、主备漂移、复制延迟。优化建议:使用压缩传输与增量同步减少带宽,选择按需与预留实例混合计费,利用对象存储生命周期规则降低长期存储成本,同时遵循数据合规(加密、备案)。
来源:技术方案解读 江苏香港站群服务器 负载均衡与备份策略