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

一、方案概述

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

九、总结

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

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

核心价值在于:

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

相关推荐
wanhengidc3 小时前
服务器租用有何优点
运维·服务器·安全·web安全
ZGi.ai4 小时前
人工审查节点:让自动化工作流多一步人工把关
运维·人工智能·自动化·人机协同·智能体工作流·人工审查
csdn_aspnet4 小时前
Gemini赋能安全工程师,自动写PoC脚本,探索Gemini在网络安全领域辅助漏洞验证与POC生成的实战路径
安全·web安全·prompt·poc·gemini·工程师
艾莉丝努力练剑4 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
海市公约4 小时前
Linux核心基础命令与权限管理实战指南
linux·运维·服务器·vim·权限管理·系统监控·命令行
Chengbei114 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
wkd_0074 小时前
Ubuntu 22.04 Samba 连接故障排查记:从“用户名或密码错误”到 NTLM 版本不兼容
linux·运维·ubuntu
企服AI产品测评局4 小时前
Agent适配信创环境实测:企业级自动化如何实现国产操作系统与数据库全兼容?
运维·数据库·人工智能·ai·chatgpt·自动化
mixboot5 小时前
Linux 进程工作目录查看利器:pwdx 命令详解
linux·运维·服务器
冬奇Lab5 小时前
每日一个开源项目(第105篇):Twenty - 跳出 Salesforce 的圈套,定义现代开源 CRM
前端·后端·开源