该充电运营平台自 2019 年启动建设,设计接入十万台不同品牌与不同协议的充电桩设备。整体系统的核心要求包括:
高并发设备接入能力 —— 大规模 TCP 长连接稳定保持;毫秒级报文响应 —— 充电启停必须实时响应,延迟容忍度极低;多品牌设备隔离与灵活适配 —— 不同前置服务独立维护升级;高可用与可观测性 —— 运营级别 SLA 要求,异常快速响应;可持续扩容能力 —— 随接入桩企增长动态增加协议处理能力。在这些约束下,本系统选择 Spring Cloud 微服务体系 + 自主高性能协议前置层 + RabbitMQ 解耦链路 + MySQL 读写分离架构 + Redis 高性能缓存 的技术栈,并刻意不引入 API Gateway,确保协议链路最短、时延最低,保障实时控制能力。

整体架构分为五大层:
设备层 → 前置接入层 → 消息队列层 → 协议处理层 → 业务应用层
再辅以:
数据库与缓存层统一监控、告警体系安全体系与权限模型灰度发布与高可用部署策略为了保证“充电不中断、启停实时、功率上报实时”,系统采用 前置微服务 → MQ → 协议处理 → MQ → 前置服务 → 设备 的高性能闭环。
TCP/WebSocket 桩设备
↓
前置接入微服务(Netty)
↓
RabbitMQ(不同品牌独立 Virtual Host)
↓
协议处理服务(DataManageService 集群)
↓
RabbitMQ(回写队列)
↓
前置服务发送指令(毫秒级 ACK)
↓
TCP/WebSocket 设备
全部基于 Netty,单机可稳定支撑 万级长连接。
不同厂商、不同协议独立部署,互不影响升级。
| 服务 | 协议 | 适配品牌 | 特点 |
|---|---|---|---|
| dev_gqaa | TCP | 广汽 | 二进制协议,低延迟 |
| dev_jfy | TCP | 晶福源 | 1 分钟状态上报 |
| dev_ykc | TCP | 云快充 | 私有协议 |
| dev_occp | WebSocket | OCPP 1.6/2.0 | 支持 TLS/WSS |
API Gateway 只会出现在未来 APP 端/第三方 API 的场景,与设备链路完全隔离。
服务:
DataManageService(4+ 节点集群)
服务:
| 服务名 | 角色 |
|---|---|
| backend | 后台运营管理(低并发) |
| order | 订单生命周期管理 |
| thrid_api | App/第三方开放接口(高并发) |
| jobTask | 定时任务中心 |
| chargeReg | 服务注册中心 |
| common | 公共工具模块 |
因为:
APP 用户量大第三方平台强依赖实时查询查询设备状态全部来自 Redis(不压 DB)
✔ 可为每个供应商创建独立 Virtual Host
✔ 出现问题只影响单个桩企
✔ 控制级报文使用专用队列
✔ 延迟极低,稳定性高
✔ 插件生态成熟(延时队列、监控等)
相比:
| MQ | 放弃原因 |
|---|---|
| ActiveMQ | 脆弱、稳定性不够,消息堆积问题突出 |
| RocketMQ | 对你们的多租户隔离需求不友好(无 VirtualHost) |
RabbitMQ 完全契合充电桩 SaaS 场景。
用途:
设备实时在线状态交易中实时功率、电量、计费数据分布式锁(定时任务防重)JWT 黑名单热点站点/电价配置协议服务更新流程:
先更新一台协议处理节点观察一段时间(比如 10~30 min)再逐台滚动更新前置服务是独立的 → 不会影响其它品牌设备这种方式比 K8s Rollout 更透明更可控,在协议类业务尤其适用。
/actuator/health监控前置 TCP/WebSocket 端口可用性监控 MySQL 主从延迟监控 Redis 和 RabbitMQ 状态出问题第一时间通知运维/运营对运营人员非常友好(非技术也能理解)
后期可接入 Prometheus + Grafana 做 QPS/JVM/GC 深度监控。
你们采用的是非常高效、务实的扩容方式:
协议处理层可通过增加节点横向扩容前置层按品牌拆分,访问压力分散应用层访问量本身不大,不需要自动扩容所有持久化异步化,因此扩容成本极低结论:无需 K8s,也能做到高可用与可扩容。
安全模型完整、覆盖度高。
| 服务器类型 | 数量 | 部署内容 |
|---|---|---|
| 前置接入服务器 | 4 | 各品牌独立 Netty 服务 |
| 协议处理服务器 | 4+ | DataManageService |
| 应用服务器 | 2+ | backend、order、thrid_api、jobTask、common |
| 主业务数据库 | 1 主 + 1 从 | MySQL 5.7 |
| 报文数据库 | 1 | MySQL 5.7 |
| 中间件服务器 | 2 | Redis Sentinel + RabbitMQ 集群 |
| 监控服务器 | 1 | Uptime Kuma + Nginx |

该架构已在真实大规模充电桩运营场景中运行多年,并具有以下优势:
✔ 极强的实时性:核心链路无阻塞,高速闭环 design。
✔ 极高的稳定性:多品牌隔离、自主前置层、高性能 MQ。
✔ 扩容简单:无需容器/K8s,也可轻松线性扩展。
✔ 低运维成本:MySQL 5.7 + Redis + RabbitMQ 均稳定性极高。
✔ 灰度更新安全:协议类服务可独立滚动升级。
✔ 长期验证可行:稳定支撑 20 万设备规模,单表两亿数据无压力。
这是一个真正为“充电桩行业强实时、高并发、异构协议”量身打造的成熟微服务架构。