RuoYi-Cloud 是一个基于 Spring Cloud 的微服务架构系统,包含多个核心组件(如 Nacos、Sentinel、Gateway、Auth、System、Gen 等)。在部署到云服务时,“最低配置”高度依赖于业务场景(是仅用于开发测试,还是正式生产环境),因为微服务本身会消耗较多的内存资源。
以下是针对不同场景的推荐配置方案及关键考量:
1. 场景一:开发/测试/演示环境(最低可行配置)
如果你只是进行代码调试、功能演示或内部测试,且并发量极低(几乎无人访问),可以尝试以下“极限压缩”配置。
- 推荐配置:2 核 CPU / 4GB 内存 / 40GB 系统盘
- 单节点部署模式:为了节省成本,可以将所有微服务(Nacos, Gateway, Auth, System 等)和数据库(MySQL)部署在同一台服务器上。
- 资源分配逻辑:
- JVM 堆内存:每个微服务默认可能占用 512MB-1GB。2 核 4G 的机器需要手动调小各服务的 JVM 参数(例如
-Xms256m -Xmx512m),否则极易触发 OOM(内存溢出)导致服务崩溃。 - 中间件:Nacos 和 MySQL 也会占用约 500MB-800MB 内存。
- 操作系统开销:Linux 系统本身需预留 500MB 左右。
- JVM 堆内存:每个微服务默认可能占用 512MB-1GB。2 核 4G 的机器需要手动调小各服务的 JVM 参数(例如
- 风险:一旦启动所有服务,内存使用率可能瞬间达到 90% 以上,运行不稳定,容易死机。不建议用于任何对外服务。
2. 场景二:小型生产环境/正式试运行(推荐起步配置)
如果是面向真实用户的小型项目,或者作为生产环境的入门配置,强烈建议将应用服务器与数据库分离,并适当增加内存以保障稳定性。
- 应用服务器(App Server):2 核 CPU / 4GB 内存 / 50GB+ 盘
- 部署除数据库外的所有微服务(Nacos, Gateway, Auth, System, Gen 等)。
- 此时可以稍微放宽 JVM 限制(如
-Xms512m -Xmx1g),保证服务不频繁重启。
- 数据库服务器(DB Server):1 核 CPU / 2GB 内存 / 50GB+ 盘
- 专门部署 MySQL 8.0/5.7。
- 如果预算允许,直接购买云厂商的 RDS 服务(按量付费或包年包月),通常比自建更稳定且维护成本低。
- 总成本:两台云服务器 + 可能的 Redis/Nginx 独立实例(若内存紧张可复用应用服)。
3. 场景三:标准生产环境(高可用/正式商用)
对于正式商用的项目,必须考虑高可用(HA)、负载均衡和故障隔离。
- 架构建议:
- 应用集群:至少 2 台 2 核 4G 或 4 核 8G 的应用服务器,通过负载均衡(SLB/Nginx)分发流量。
- 注册中心:Nacos 建议部署为集群模式(3 节点)以保证高可用,或者使用云厂商托管的 Nacos。
- 数据库:使用云厂商的高可用版 RDS(主从自动切换)。
- 缓存:独立的 Redis 集群或哨兵模式。
- 单机规格参考:每台应用服务器建议 4 核 8G 起步,以应对突发流量和 GC 停顿。
关键优化建议(针对低配服务器)
如果在低配环境下(如 2C4G)必须运行,请务必执行以下优化操作,否则无法启动:
-
调整 JVM 参数:
修改application.yml或启动脚本中的 JVM 参数,强制降低堆内存上限。# 示例:限制单个微服务最大堆内存为 512M JAVA_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC"注意:Nacos 服务端通常需要更多内存,若内存不足,可尝试将 Nacos 迁移至独立的小规格服务器或使用 Docker 限制容器内存。
-
关闭非核心模块:
如果不需要代码生成(Gen)、定时任务(Quartz)等功能,可以在配置中禁用相关模块,减少启动时的资源占用。 -
使用 Docker Compose 管理:
在低配服务器上,使用 Docker Compose 可以更方便地通过mem_limit参数严格控制每个容器的内存使用,防止某个服务吃光所有内存导致系统卡死。 -
选择轻量级镜像:
确保构建的 Docker 镜像使用的是alpine基础镜像或精简版的 JDK(如 OpenJDK 11/17 的 slim 版本),减小镜像体积和运行时开销。
总结结论
| 场景 | 推荐配置 (CPU/RAM) | 部署方式 | 备注 |
|---|---|---|---|
| 极限测试 | 2 核 / 4GB | 单节点混合部署 | 需大幅调小 JVM 参数,极易不稳定,仅限本地或内网测试。 |
| 小型生产 | 2 核 / 4GB (应用) 1 核 / 2GB (DB) |
应用与 DB 分离 | 推荐起步方案,需配合云数据库 RDS 更佳。 |
| 正式商用 | 4 核 / 8GB x 2 (应用集群) | 多节点 + 负载均衡 | 必须保证高可用,建议上云原生 PaaS 服务。 |
最终建议:如果预算允许,不要挑战 2C4G 单机的极限。RuoYi-Cloud 的微服务特性决定了它比单体应用更吃内存。最经济的做法是租用一台 2C4G 的应用服务器 搭配云厂商的 按量付费 RDS 数据库,这样既保证了系统稳定性,又避免了因内存不足导致的运维灾难。
轻量云Cloud