奥升充电最小化高可用机房部署方案

一、方案概述

本方案旨在提供一套最小成本实现高可用(High Availability, HA)的本地机房部署架构,适用于中小规模充电运营平台。

通过双节点 + VIP漂移 + 主从复制的设计,实现以下目标:

  • 核心服务无单点故障(Nginx / MySQL / Redis)
  • 服务故障自动切换(秒级)
  • 数据安全(主从复制)
  • 架构简洁,部署成本低
  • 支持横向扩展(微服务架构)

架构核心思想

  • 入口高可用:Nginx + Keepalived(VIP漂移)
  • 数据高可用:MySQL主从 + Redis主从
  • 服务高可用:微服务双节点部署
  • 控制面稳定:Nacos + XXL-JOB 双节点
  • 存储与消息解耦:Minio + RabbitMQ

二、基础环境说明

2.1 网络环境与IP规划

类型 IP
外网IP 101.10.172.118(示例)
服务器1(主) 192.168.1.6
服务器2(备) 192.168.1.7
NGINX-VIP 192.168.1.100
MYSQL-VIP 192.168.1.101
REDIS-VIP 192.168.1.102

说明:

VIP(虚拟IP)由 Keepalived 管理,实现主备切换时业务无感知。


2.2 端口规划

公网开放端口(业务入口)
端口 说明
443 HTTPS 接入
20511 云快充 1.5/1.6/1.7
20512 云快充 2.1
20515-20519 OCPP / WSS 等扩展协议
内部或受限端口
端口 服务
18081 XXL-JOB
15672 RabbitMQ
8848 Nacos
3306 MySQL
6379 Redis
9091 Minio
22 SSH(建议修改)

2.3 部署组件清单

分类 组件
高可用组件 Keepalived + VIP
数据层 MySQL 主从
缓存层 Redis 主从
注册中心 Nacos(单机)
消息队列 RabbitMQ(单机)
对象存储 Minio(单机)
网关层 Nginx 双节点
调度系统 XXL-JOB 双节点
业务层 ruoyi-* / omind-* 微服务

2.4 部署方式

采用 Docker 容器化部署

服务器1(主节点)
  • MySQL 主
  • Redis 主
  • Nginx 主
  • Keepalived
  • Nacos
  • XXL-JOB 节点1
  • 全量微服务
服务器2(备节点)
  • MySQL 从
  • Redis 从
  • Nginx 备
  • Keepalived
  • RabbitMQ
  • Minio
  • XXL-JOB 节点2
  • 全量微服务

2.5 服务器配置建议

项目 配置
数量 2 台
CPU 16 核
内存 32GB / 64GB
硬盘 1TB SSD
网络 千兆内网
系统 Ubuntu 24.04

三、高可用架构设计说明

3.1 Keepalived + VIP 机制

通过 Keepalived 实现 VIP 漂移:

  • 主节点正常 → 持有 VIP
  • 主节点故障 → VIP 漂移到备节点
  • 客户端无感知切换

监控维度:

  • Nginx 进程
  • MySQL 可用性
  • Redis 可用性

3.2 MySQL 高可用

  • 架构:一主一从
  • 同步方式:Binlog 复制
  • VIP:192.168.1.101

特点:

  • 主库写,从库读(可扩展读写分离)
  • 主库故障 → VIP切换 + 手动/自动提升从库

3.3 Redis 高可用

  • 架构:主从复制
  • 从节点通过 --slaveof 自动同步
  • VIP 提供统一访问入口

3.4 Nginx 高可用

  • 双节点部署
  • VIP 对外提供统一入口
  • 支持:
    • 四层 TCP 转发(充电协议)
    • 七层 HTTP 转发(平台业务)

3.5 微服务高可用

  • 所有服务双节点部署
  • 注册到 Nacos
  • 通过网关统一调度

优势:

  • 单节点故障不影响整体服务
  • 支持动态扩容

3.6 消息与存储

服务 部署方式 说明
RabbitMQ 单机(在备节点) 削峰填谷
Minio 单机(在备节点) 文件存储

最小化方案中为单点,可按需升级为集群


四、部署步骤说明

4.1 Docker 环境准备

安装 Docker

复制代码
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER

启动 Docker

复制代码
sudo systemctl start docker
sudo systemctl enable docker

五、核心部署说明

5.1 服务器1(主节点)

部署内容
  • MySQL 主
  • Redis 主
  • Nginx 主
  • Keepalived
  • Nacos
  • XXL-JOB
  • 微服务全集群

(具体 docker-compose 已提供,可直接使用)


5.2 服务器2(备节点)

部署内容
  • MySQL 从
  • Redis 从
  • Nginx 备
  • Keepalived
  • RabbitMQ
  • Minio
  • XXL-JOB
  • 微服务全集群

六、关键配置说明

6.1 MySQL 主从配置

主库:

复制代码
CREATE USER 'mysql_slave'@'%';
ALTER USER 'mysql_slave'@'%' IDENTIFIED BY 'omind2023';
GRANT REPLICATION SLAVE ON *.* TO 'mysql_slave'@'%';
FLUSH PRIVILEGES;

从库:

复制代码
CHANGE MASTER TO MASTER_HOST='192.168.1.6', ...;
START SLAVE;

6.2 Keepalived 健康检查

  • Nginx:进程检测
  • MySQL:SQL检测
  • Redis:PING检测

实现故障自动切换。


6.3 Redis 主从

从节点启动参数:

复制代码
redis-server --slaveof 192.168.1.6 6379

七、方案特点总结

优点

  • 成本低(仅2台服务器)
  • 架构简单,易维护
  • 核心组件高可用
  • 支持平滑扩展

局限性

  • RabbitMQ / Minio 为单点
  • MySQL 未实现自动选主(需人工或引入 MHA)
  • 不适用于超大规模场景

八、扩展建议(生产增强)

如需进一步提升可靠性,可演进为:

  • MySQL → MGR / InnoDB Cluster
  • Redis → Sentinel / Cluster
  • RabbitMQ → 集群模式
  • Minio → 分布式模式
  • Nacos → 集群模式
  • 引入 Kubernetes(K8s)

九、总结

本方案在最小资源投入下实现了关键链路高可用,适用于:

  • 中小型充电运营平台
  • 私有化部署客户
  • 初期业务快速上线

核心价值在于:

用最少的机器,实现"不中断服务"的能力

相关推荐
qcx2310 小时前
【AI Agent实战】OpenClaw 安全加固完全指南:安全攻击手段与五步防护实践(2026最新)
人工智能·安全
SilentSamsara11 小时前
TCP 三次握手:连接建立失败的那些坑
运维·服务器·网络·网络协议·tcp/ip
code tsunami13 小时前
如何在车辆数据自动化中解决Cloudflare Turnstile
运维·microsoft·自动化
冬奇Lab13 小时前
一天一个开源项目(第75篇):Hermes Agent - Nous Research 开源的自我进化 AI Agent
人工智能·开源·资讯
Chockmans13 小时前
春秋云境CVE-2021-34257
安全·web安全·网络安全·php·网络攻击模型·春秋云境·cve-2021-34257
翼龙云_cloud13 小时前
亚马逊云代理商:CloudWatch Agent 全解析 5 步实现服务器监控
运维·服务器·云计算·aws·云服务器
李白你好14 小时前
一款面向网络安全攻防演练场景的自动化信息收集工具。
安全·web安全·自动化
福大大架构师每日一题14 小时前
lmdeploy v0.12.3:视频输入、Qwen3.5、TurboMind 压缩张量、Ray 安全 API 等重大升级全面解析
安全·lmdeploy
Cyber4K14 小时前
【Nginx专项】基础入门篇:状态页、微更新、内容替换、读取、压缩及防盗链
linux·运维·服务器·nginx·github
Bruce_Liuxiaowei15 小时前
顺藤摸瓜:一次从防火墙告警到设备实物的溯源实战
运维·网络·网络协议·安全