选择 RuoYi-Cloud 生产环境的服务器配置,不能一概而论,必须基于业务规模、并发量、数据量以及预算进行综合评估。RuoYi-Cloud 是基于 Spring Cloud Alibaba 的微服务架构,相比单体应用(如 RuoYi-Vue),它对资源的要求更高,因为每个微服务模块都需要独立的 JVM 内存和 CPU 资源。
以下是根据不同场景的详细配置建议及关键优化策略:
一、 核心原则
- 微服务拆分粒度决定资源消耗:如果你将项目拆分成几十个微服务,每个服务即使只占用少量资源,总和也会很大。建议初期不要过度拆分,或采用“大模块”聚合部署。
- JVM 内存是瓶颈:Java 应用的内存管理至关重要,需合理设置
-Xms和-Xmx。 - 高可用优先于高性能:生产环境至少需要主备或集群部署,避免单点故障。
二、 不同场景的推荐配置方案
场景 1:小型企业 / 内部管理系统 / MVP 验证
- 特点:用户数 < 500,日均访问量低,功能模块较少(约 5-8 个核心微服务)。
- 推荐配置:
- CPU: 4 核 ~ 8 核
- 内存: 8 GB ~ 16 GB
- 带宽: 5 Mbps ~ 10 Mbps
- 存储: SSD 云盘 100GB+
- 说明:
- 可将多个轻量级服务(如
ruoyi-gateway,ruoyi-system,ruoyi-gen)合并部署在同一实例上,减少进程开销。 - Nacos、Sentinel、Seata 等中间件可与应用混合部署以节省成本。
- 可将多个轻量级服务(如
场景 2:中型企业 / 标准 SaaS 平台 / 对外业务系统
- 特点:用户数 500~5000,有一定并发压力,微服务数量较多(10-20+),需要较高可用性。
- 推荐配置:
- 应用服务器集群:
- 每台节点:8 核 16 GB 或 16 核 32 GB
- 数量:至少 2~3 台组成集群(配合负载均衡 Nginx/SLB)
- 中间件服务器(独立部署更佳):
- Nacos + MySQL + Redis + RabbitMQ/RocketMQ:建议单独一台 8 核 16 GB 或 16 核 32 GB 服务器。
- 或者使用云厂商托管服务(如阿里云 RDS、Redis、RocketMQ),可大幅降低运维复杂度并提升稳定性。
- 带宽: 10 Mbps ~ 20 Mbps(若图片/文件多,建议搭配 OSS/COS)
- 说明:
- 网关(Gateway)应独立部署或与其他高负载服务分离。
- 数据库建议使用读写分离或主从复制。
- 应用服务器集群:
场景 3:大型企业 / 高并发 / 复杂业务系统
- 特点:用户数 > 5000,峰值并发高,微服务繁多,对稳定性和性能要求极高。
- 推荐配置:
- 应用服务器集群:
- 每台节点:16 核 32 GB 或 32 核 64 GB
- 数量:根据实际压测结果动态伸缩(Kubernetes 推荐配置)
- 中间件基础设施:
- 强烈建议使用云托管服务:
- MySQL:高可用版(主从+自动备份)
- Redis:集群模式
- RocketMQ/Kafka:集群模式
- Nacos/Eureka:集群部署在专用服务器或容器平台
- 若自建中间件服务器:每台 16 核 32 GB 以上,且至少 3 台组成集群。
- 强烈建议使用云托管服务:
- 带宽: 20 Mbps+ 或按流量计费
- 说明:
- 引入 Kubernetes (K8s) 进行容器化编排管理。
- 实施全链路监控(SkyWalking/Prometheus+Grafana)。
- 考虑 CDN 提速静态资源,OSS 存储文件。
- 应用服务器集群:
三、 关键组件资源配置细节
| 组件 | 最小推荐配置 | 推荐配置(生产) | 注意事项 |
|---|---|---|---|
| Nacos | 2C4G | 4C8G 或 8C16G | 注册中心核心,宕机影响全局。建议集群部署(3节点起)。 |
| MySQL | 2C4G | 4C8G 或 8C16G | 索引优化、慢查询分析是关键。生产环境务必开启 binlog 和自动备份。 |
| Redis | 1C2G | 2C4G 或 4C8G | 用于缓存会话、字典、验证码等。注意内存淘汰策略和数据持久化。 |
| RabbitMQ/RocketMQ | 2C4G | 4C8G | 消息队列堆积会影响性能。需监控队列长度和消费延迟。 |
| Gateway | 2C4G | 4C8G | 网关是流量入口,易成为瓶颈。需关注线程池和连接数。 |
| 各业务微服务 | 1C2G | 2C4G 或 4C8G | 根据具体业务逻辑调整。避免单个服务内存过大导致 OOM。 |
⚠️ 注意:以上为单机最低配置。生产环境必须通过集群方式部署这些组件以实现高可用。
四、 生产环境优化建议(比硬件更重要)
-
JVM 参数调优
- 设置堆内存:
-Xms和-Xmx设为相同值,避免频繁 GC 扩容。 - 示例(8G 内存服务器上的服务):
-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 - 使用 Arthas 等工具实时诊断 GC 问题。
- 设置堆内存:
-
数据库优化
- 启用连接池(HikariCP),合理设置最大连接数。
- 对常用查询字段建立索引,避免全表扫描。
- 分页查询使用游标式分页而非
LIMIT offset, size(大数据量时)。
-
缓存策略
- 热点数据(如菜单、字典、权限)务必放入 Redis。
- 使用本地缓存(Caffeine/Guava)+ 分布式缓存(Redis)两级缓存结构,减轻 Redis 压力。
-
日志管理
- 生产环境关闭 DEBUG 级别日志,仅保留 INFO/WARN/ERROR。
- 使用 ELK(Elasticsearch, Logstash, Kibana)或 Loki 集中收集日志,避免磁盘写满。
-
安全加固
- 关闭不必要的端口暴露。
- 使用 HTTPS 加密通信。
- 定期更新依赖库,修复 CVE 漏洞。
- 实施 IP 白名单、限流(Sentinel)、熔断降级机制。
-
自动化部署与监控
- 使用 Jenkins/GitLab CI + Docker/K8s 实现自动化发布。
- 部署 Prometheus + Grafana 监控系统指标(CPU、内存、JVM、QPS、RT)。
- 集成 SkyWalking 进行链路追踪,快速定位性能瓶颈。
五、 总结建议
- 起步阶段:不要追求顶级配置,但必须保证高可用架构(如 MySQL 主从、Redis 哨兵、Nacos 集群)。可以选择 4C8G 或 8C16G 云服务器 作为基础。
- 成长阶段:随着用户增长,先优化代码和 SQL,再考虑升级硬件。横向扩展(加机器)通常比纵向扩展(加配置)更经济有效。
- 最终目标:构建弹性伸缩能力,利用云平台特性实现按需分配资源。
✅ 最佳实践:对于大多数中小型企业的 RuoYi-Cloud 生产环境,3 台 8C16G 云服务器 是一个较为平衡且安全的起点:
- 1 台用于 Nacos + MySQL + Redis + MQ 集群
- 2 台用于应用服务集群(Gateway + 业务微服务)
这样既能满足高可用需求,又便于后期扩展。
云服务器