RuoYi-Cloud 基于 Spring Cloud 微服务架构,包含多个核心组件(如 Nacos、Sentinel、Gateway、Auth、System、Job 等),相比单体应用对资源消耗较大。在云服务上部署时,最低配置取决于你的业务场景(是仅用于开发测试,还是正式生产环境)以及预期的并发量。
以下是针对不同场景的推荐配置方案及详细分析:
1. 核心结论:最低配置建议
| 场景 | CPU (核) | 内存 (GB) | 磁盘 (GB) | 适用情况 |
|---|---|---|---|---|
| 开发/测试环境 | 2 vCPU | 4 GB | 50+ | 个人学习、本地演示、低并发测试 |
| 生产环境 (最小) | 4 vCPU | 8 GB | 100+ | 内部小工具、低流量企业应用 |
| 生产环境 (推荐) | 4 vCPU | 16 GB | 100+ | 正常对外服务、中等并发 |
注意:如果选择 2 核 4G 作为生产环境,必须开启 Swap(虚拟内存),且需做好性能调优,否则极易出现 OOM(内存溢出)导致服务频繁重启。
2. 资源占用拆解分析
RuoYi-Cloud 默认包含以下主要组件,它们的内存占用如下(估算值):
- JVM 基础开销:每个 Java 进程默认需要一定堆内存。若不开启 JVM 参数优化,单个服务可能占用 512MB - 1GB。
- Nacos (注册中心/配置中心):
- 默认模式:约 512MB - 1GB。
- 优化后:可压缩至 300MB 左右。
- Gateway (网关):约 200MB - 400MB。
- Auth (认证服务):约 200MB - 300MB。
- System (系统模块):约 300MB - 500MB。
- Job (定时任务):约 200MB。
- MySQL (数据库):通常建议独立部署。若共用一台服务器,MySQL 至少需要 1GB - 2GB 内存才能稳定运行。
- Redis:约 200MB - 500MB(视缓存数据量而定)。
总内存计算逻辑:
如果不拆分部署(所有服务在一台机器):
Nacos(800M) + Gateway(400M) + Auth(300M) + System(500M) + Job(200M) + MySQL(1000M) + Redis(500M) + JVM 元空间/堆 = 约 4.5GB ~ 6GB
这意味着 4GB 内存 的机器在运行 RuoYi-Cloud 时会非常吃力,几乎无法预留操作系统和其他缓冲空间。因此,生产环境强烈建议至少 8GB。
3. 关键优化策略(如何在低配下运行)
如果你受限于预算,必须在 2 核 4G 或 4 核 8G 的低配服务器上运行,请务必执行以下优化:
A. 数据库与中间件分离(强烈推荐)
不要将 MySQL、Redis 和 Nacos 都放在同一台应用服务器上。
- 方案:使用云厂商提供的 RDS(云数据库)和 Redis 实例(按量付费或最低档)。
- 收益:可以将应用服务器的内存压力释放掉一半以上,使得 2 核 4G 的应用服务器能跑起来。
B. 调整 JVM 参数
修改 application.yml 或启动脚本中的 JVM 参数,限制最大堆内存,防止 OOM。
# 示例:针对 4G 内存的机器,设置堆内存为 1.5G - 2G
-Xms1024m -Xmx1536m -XX:+UseG1GC
对于 Nacos,需单独调整其启动参数:
-nacos.conf --server.port=8848 -Xms512m -Xmx512m
C. 关闭非必要功能
- 如果不需要监控大屏,可以暂时不部署 Spring Boot Admin 或减少 SkyWalking 探针。
- 如果不需要复杂的限流规则,可以在启动时禁用 Sentinel Dashboard 的某些非核心功能。
D. 使用 Docker Compose 编排
使用 docker-compose 部署比直接 Jar 包运行更节省资源,且方便管理依赖版本。
4. 部署架构建议
为了获得最佳性价比和稳定性,建议采用以下两种架构之一:
方案一:极简单节点(适合测试/极低流量)
- 服务器:2 vCPU / 4 GB RAM
- 软件栈:Docker Compose 一键部署
- 配置:
- MySQL:共享内存,需严格限制连接数。
- Redis/Nacos:共享内存。
- 风险:高并发下容易卡顿,数据库易崩溃。
- 必须操作:增加 Swap 分区(建议 4GB-8GB)。
方案二:微服务分离(适合生产/正式项目)
- 应用服务器:4 vCPU / 8 GB RAM(运行所有 Spring Cloud 微服务 + Nacos + Gateway)
- 数据库服务器:2 vCPU / 4 GB RAM(运行 MySQL + Redis)
- 优势:互不影响,数据库挂掉不会拖垮整个应用集群,扩展性更好。
总结
- 最低可行配置:2 核 4G(必须开启 Swap,且数据库需独立或极度精简,仅用于测试)。
- 生产起步配置:4 核 8G(这是比较稳妥的底线,建议配合云数据库使用)。
- 推荐配置:4 核 16G 或 8 核 16G(根据业务量动态调整,保证系统流畅度)。
在云服务商购买实例时,建议选择支持弹性伸缩的机型,以便在业务高峰期自动增加配置,低谷期释放成本。
CLOUD云计算