RuoYi-Cloud 是基于 Spring Cloud Alibaba 的微服务架构,其资源消耗远高于单体应用(如 RuoYi-Vue)。在生产环境中,服务器配置的选择直接决定了系统的稳定性、响应速度和扩展能力。
以下是针对 RuoYi-Cloud 生产环境 的服务器配置建议,分为 最小可用配置、推荐标准配置 和 高并发/大型项目配置三个层级,并附带关键优化建议。
一、核心原则:微服务拆分部署
RuoYi-Cloud 包含多个独立服务(如 ruoyi-gateway、ruoyi-auth、ruoyi-system、ruoyi-job、nacos、sentinel、seata 等)。
- 严禁将所有服务堆叠在一台服务器上(除非是极小规模测试)。
- 建议按功能模块分组部署,或使用 Kubernetes (K8s) + Docker 容器化部署。
二、服务器配置推荐方案
✅ 方案 1:小型项目 / 内部系统 / 低流量场景
适用:用户数 < 500,日均请求量 < 1万,团队小,预算有限。
| 组件 | 配置建议 | 说明 |
|---|---|---|
| 应用服务器 | 4核 8G | 运行核心业务服务(system, auth, gateway 等) |
| 中间件服务器 | 2核 4G | Nacos + MySQL + Redis + RabbitMQ/RocketMQ |
| 监控/日志 | 2核 4G | Prometheus + Grafana + ELK (轻量版) 或仅用 Loki |
| 总节点数 | 2~3 台 | 可合并中间件与应用,但需隔离进程 |
💡 注意:即使小型项目,也建议将 Nacos 和 MySQL 单独部署在低配服务器上,避免与业务争抢 CPU/内存。
✅✅ 方案 2:中型项目 / 公开互联网产品 / 中等流量
适用:用户数 500~5000,日均请求量 10万~50万,对外提供服务。
| 组件 | 配置建议 | 说明 |
|---|---|---|
| 网关层 (Gateway) | 4核 8G × 2 | 负载均衡入口,需高可用 |
| 业务服务集群 | 4核 8G × 3~5 | 每个核心服务(system, auth, etc.)至少 2 实例,实现高可用 |
| 中间件集群 | 8核 16G × 2 | Nacos 集群 + MySQL 主从 + Redis 哨兵/集群 + MQ |
| 监控/日志 | 4核 8G | 完整 ELK 或 EFK 栈 + Prometheus |
| 总节点数 | 7~10 台 | 支持故障转移和水平扩展 |
💡 关键点:
- 所有无状态服务(如 system, auth)必须多实例部署。
- Nacos 集群至少 3 节点(奇数原则),MySQL 主从复制。
✅✅✅ 方案 3:大型项目 / 高并发 / 企业级应用
适用:用户数 > 5000,日均请求量 > 100万,对可用性要求极高(99.9%+)。
| 组件 | 配置建议 | 说明 |
|---|---|---|
| 网关层 | 8核 16G × 3+ | 配合 SLB/Nginx 做四层/七层负载均衡 |
| 业务服务 | 8核 16G × N | 根据 QPS 动态伸缩,关键服务独立部署 |
| 中间件集群 | 16核 32G × 3+ | Nacos 集群 + MySQL MGR/InnoDB Cluster + Redis Cluster + RocketMQ 双主双从 |
| 存储层 | SSD 云盘 | MySQL 使用高性能 SSD,数据备份异地容灾 |
| 监控/日志 | 专用集群 | SkyWalking + ELK + Prometheus + AlertManager |
| 总节点数 | 10+ 台 | 建议使用 K8s 管理,自动扩缩容 |
三、各组件详细配置建议
1. JVM 参数调优(关键!)
微服务默认 JVM 堆内存较小,生产环境必须手动设置 -Xms 和 -Xmx,避免频繁 GC。
# 示例:4核 8G 服务器上的服务
-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
-XX:+UseG1GC -XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/logs/java_oom.hprof
⚠️ 不要使用
-Xmx超过物理内存的 70%,留出空间给 OS 和 Direct Memory。
2. Nacos 配置
- 模式:生产环境务必使用 集群模式(至少 3 节点)。
- 数据库:连接外部 MySQL,不要使用内置 Derby。
- JVM:Nacos 本身较吃内存,建议 ≥ 4G 堆内存。
3. Sentinel 限流熔断
- 若未启用控制台,需手动配置规则;建议部署 Sentinel Dashboard 用于实时监控。
- 配置合适的 QPS 阈值,防止雪崩效应。
4. Seata 分布式事务(如启用)
- Seata Server 资源消耗较大,建议独立部署。
- 确保 TC(Seata Server)与业务服务网络延迟低。
5. 消息队列(RabbitMQ / RocketMQ)
- RabbitMQ:适合中小规模,内存敏感,建议 ≥ 4G 内存。
- RocketMQ:适合高吞吐,NameServer + Broker 分离部署,Broker 建议 ≥ 8G 内存。
四、基础设施与架构建议
| 项目 | 建议 |
|---|---|
| 操作系统 | CentOS 7.9 / Ubuntu 20.04 LTS / Alibaba Cloud Linux |
| 容器化 | 强烈推荐使用 Docker + Docker Compose 或 Kubernetes (K8s) |
| 负载均衡 | 阿里云 SLB / AWS ALB / Nginx Ingress Controller |
| 域名与 SSL | 使用 HTTPS,证书由 Let’s Encrypt 或商业 CA 提供 |
| 备份策略 | MySQL 每日全备 + binlog 增量备份;Redis AOF 持久化 |
| 监控告警 | Prometheus + Grafana + AlertManager(微信/钉钉/邮件通知) |
| 日志收集 | Filebeat → Kafka → Logstash/Elasticsearch → Kibana |
五、常见误区与避坑指南
-
❌ 把所有服务打成一个 Jar 包
→ 违背微服务初衷,无法独立扩容,故障隔离差。 -
❌ 忽略 JVM 参数
→ 默认堆内存过小会导致频繁 Full GC,CPU 飙升,接口超时。 -
❌ Nacos 单点部署
→ Nacos 宕机则整个系统瘫痪。生产环境必须集群部署。 -
❌ 数据库连接池未调优
→ HikariCP 默认配置可能不适用于高并发,需根据实际 QPS 调整maximum-pool-size。 -
❌ 没有熔断降级机制
→ 某个服务宕机导致调用链全部阻塞,最终拖垮网关。务必配置 Sentinel 规则。
六、总结:起步建议
如果你刚开始上线 RuoYi-Cloud 生产环境,推荐采用 “渐进式” 部署:
-
第一阶段:
- 2 台云服务器:
- 服务器 A(8C16G):部署 Nacos 集群 + MySQL + Redis + Gateway + Auth + System
- 服务器 B(4C8G):部署 Job + Monitor + 其他辅助服务
- 使用 Docker Compose 简化部署。
- 2 台云服务器:
-
第二阶段:
- 当访问量增长时,将 Gateway 和 业务服务 拆分为独立节点,实现横向扩展。
-
第三阶段:
- 引入 K8s,实现自动化运维、弹性伸缩和灰度发布。
📌 最后提醒:性能瓶颈往往不在服务器硬件,而在 代码质量、SQL 查询效率、缓存命中率、网络延迟。先做好压测和优化,再考虑升级硬件。
CLOUD技术博