直接上干货。RuoYi-Cloud 是基于 Spring Cloud Alibaba 的微服务架构,它的资源消耗比单体应用(如 RuoYi-Vue)要高得多。生产环境配置选型的核心逻辑不是“越大越好”,而是“够用且有余量”,同时要考虑集群部署后的总负载。
以下是基于实际生产经验(日活 1w-5w 级别,中等并发)的配置建议和分析逻辑。
一、 核心原则:先拆分,后定配
RuoYi-Cloud 默认包含多个微服务模块(gateway, system, job, monitor, gen 等)。在选型前,你必须明确两点:
- 是否全量部署? 很多项目不需要所有模块。比如
gen(代码生成)和job(定时任务)如果非高频使用,可以单独部署或降低配置优先级。 - JVM 内存占比: 微服务启动开销大,每个服务至少需要预留足够的堆外内存和元空间。切忌给 Linux 服务器分配过多 CPU 而内存不足,或者反之。
二、 具体服务器配置推荐表
方案 A:中小型生产环境(推荐起步配置)
适合:初创团队、内部系统、日 PV < 10万。
策略: 采用“小规格多实例”或“中等规格单节点+容器化”。这里以物理机/虚拟机单机部署为例(生产环境强烈建议使用 Docker/K8s 编排,但底层硬件配置逻辑一致)。
| 组件 | 最低配置 (仅跑通) | 推荐配置 (稳定运行) | 说明 |
|---|---|---|---|
| CPU | 4核 | 8核 | 微服务间 RPC 调用、序列化、网关路由都需要 CPU。8核是性价比甜点。 |
| 内存 | 8GB | 16GB – 32GB | 最关键指标。Spring Boot 默认堆内存较大,加上 GC 开销,16G 是舒适线。若部署 Nacos + MySQL + Redis + 全部微服务,32G 更稳妥。 |
| 硬盘 | SSD 100G | SSD 200G+ | 必须用 SSD。日志文件、数据库数据、Nacos 配置中心都会快速占满磁盘。 |
| 带宽 | 5Mbps | 10Mbps – 20Mbps | 前端静态资源走 CDN,后端 API 返回 JSON。10M 带宽足够支撑几千 QPS 的纯接口访问。 |
方案 B:中大型生产环境(高可用集群)
适合:对外 SaaS 平台、日 PV > 50万、有严格 SLA 要求。
策略: 拆分为多台服务器,通过负载均衡(Nginx/SLB)分发。
-
网关层 (Gateway):
- 配置:4C 8G x 2台 (做集群)
- 理由:网关是流量入口,压力最大,需独立部署并横向扩展。
-
基础中间件层:
- Nacos (注册中心/配置中心): 2C 4G x 3台 (集群模式,保证高可用)
- Redis: 4C 8G (主从或哨兵模式,内存要大,因为缓存数据都在里面)
- MySQL: 8C 16G 或更高 (根据数据量调整,建议独立服务器,不要和微服务混部)
- Seata (分布式事务,如有): 2C 4G
-
业务微服务层 (System, Gen, Job, Monitor 等):
- 配置:4C 8G 或 4C 16G
- 数量:根据实际服务数量决定。通常建议每个核心服务至少 2 个实例(一主一备或负载均衡),所以你需要至少 2-4 台这种规格的服务器来承载业务逻辑。
三、 关键避坑指南(血泪经验)
-
内存是瓶颈,不是 CPU
- 很多开发者看着服务器 CPU 只有 20% 利用率,就觉得浪费,拼命加 CPU。实际上,OOM(OutOfMemoryError)才是微服务杀手。
- 设置 JVM 参数: 在
application.yml或启动脚本中,务必显式设置-Xms和-Xmx。- 例如:对于 8G 内存的服务器,单个服务建议
-Xms2g -Xmx2g。 - 如果不确定,可以先不写,观察监控(Prometheus/Grafana 或 Arthas),发现 Full GC 频繁再调整。
- 例如:对于 8G 内存的服务器,单个服务建议
-
不要把所有东西塞进一台机器
- 错误做法:在一台 4C 8G 的服务器上同时部署 MySQL、Redis、Nacos 和所有微服务。
- 后果:一旦某个服务内存泄漏或 SQL 慢查询,整个服务器宕机,连带数据库也挂了。
- 正确做法:中间件与业务分离。即使只有一台云服务器,也建议将 MySQL 和 Redis 放在独立进程或容器中,并通过资源限制(cgroups)隔离。
-
带宽别省
- 国内云厂商(阿里云、腾讯云等)按固定带宽计费很贵。如果你的前端图片、JS、CSS 没有上 CDN,那么带宽会成为巨大瓶颈。
- 确保所有静态资源都走 OSS/COS + CDN,后端服务器只处理 API 请求。这样 5Mbps 带宽也能跑出不错的性能。
-
监控先行
- 在生产环境上线前,务必部署 SkyWalking 或 Zipkin 进行链路追踪,配合 Prometheus + Grafana 监控 JVM 内存、CPU、GC 次数。
- 没有监控的微服务生产环境,等于盲人摸象。出问题只能靠猜。
-
关于 Nacos 集群
- Nacos 支持单机模式和集群模式。生产环境必须使用集群模式(至少 3 个节点)。
- 注意:Nacos 集群节点数必须是奇数(3、5、7),以保证 Raft 协议选举成功。不要用 2 个节点,会脑裂。
四、 总结建议
- 预算有限/测试转生产过渡期: 选 4C 8G 或 4C 16G 的云服务器,部署 Docker Compose 一键拉起所有服务。这是最经济的验证方式。
- 正式生产环境(推荐):
- 1台 4C 8G 用于 Gateway 集群(2实例)
- 1台 4C 8G 用于 Nacos 集群(3实例,可与其他服务混部但需限制资源)
- 1台 8C 16G 用于 MySQL + Redis
- 2台 4C 8G 用于业务微服务集群(每服务至少 2 实例)
- 总计约 4-5 台服务器,成本可控,架构清晰。
最后提醒:配置不是一成不变的。 先按推荐配置上线,接入真实流量后,通过监控数据逐步调优。宁可初期稍冗余,也不要因配置不足导致线上故障。
CLOUD云计算