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

一、方案概述

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

九、总结

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

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

核心价值在于:

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

相关推荐
文心快码BaiduComate21 小时前
Comate 搭载GLM-5.2:百万上下文,稳定支撑长程任务
前端·程序员·开源
Mr_愚人派1 天前
当"Claude"不再是 Claude:一次第三方 API 代理引发的 AI 身份伪造排查实录
人工智能·安全
冬奇Lab1 天前
每日一个开源项目(第133篇):EchoBird - 把 AI 工具的安装和部署做成傻瓜操作
人工智能·开源·资讯
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
DaLi Yao2 天前
【无标题】
人工智能·安全
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn862 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
下班走回家2 天前
DeepSeek 开源模型的突破与思考:从技术到生态的全面进化
人工智能·开源