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

一、方案概述

本方案旨在提供一套最小成本实现高可用(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)

九、总结

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

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

核心价值在于:

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

相关推荐
珠海西格2 小时前
四可装置如何监测组件衰减与逆变器效率?
大数据·运维·服务器·分布式·能源
机器觉醒时代2 小时前
智元机器人赛事官方解读:双赛道升级,以开源生态共推具身智能落地
机器人·开源·具身智能·智元机器人
oi..2 小时前
Flag入门—Flag在返回包中
网络·笔记·测试工具·安全·网络安全
摇滚侠2 小时前
Windows 版 Nginx 关闭
运维·windows·nginx
木子欢儿2 小时前
使用 Docker 快速搭建 MinIO 文件存储服务
运维·docker·容器
love530love2 小时前
Windows 开源项目部署评估与决策清单(完整版)
人工智能·windows·python·开源·github
AI周红伟2 小时前
周红伟:现象级,OpenClaw安全防控:OpenClaw+Skills+星辰大模型安全部署、实操和企业应用实操
安全
BieberChen2 小时前
ubuntu定时执行脚本---crontab详细使用指南
linux·运维·ubuntu
梦梦代码精3 小时前
开源即商用,预期产出、风险与优化建议
人工智能·gitee·前端框架·开源·github