选服务器配置,别搞“唯参数论”。RuoYi-Cloud 是微服务架构,核心痛点不在单机性能,而在网络开销、GC停顿和磁盘IO。
生产环境选型,我按以下逻辑拆解,直接给结论:
一、 先明确你的业务规模(这是前提)
- 内部管理系统/中小型企业(并发 < 500 QPS)
- 不需要上高配。
- 重点在于稳定性,而非极限性能。
- 公网SaaS/高并发场景(并发 > 1000 QPS)
- 需要弹性伸缩能力。
- 重点在于监控、限流、熔断机制是否健全,硬件只是基础。
二、 最小化生产配置建议(单节点参考)
注意:RuoYi-Cloud 默认包含 Nacos、Gateway、Auth、System、Gen 等多个模块。如果所有模块部署在同一台机器,资源消耗极大。强烈建议拆分部署或容器化编排。
方案 A:轻量级生产(适合测试转生产,或小型团队)
- CPU: 4核 ~ 8核
- 内存: 16GB ~ 32GB
- 系统盘: 100GB SSD(系统+Docker/K8s组件)
- 数据盘: 200GB+ SSD(MySQL + Redis + 日志)
- 带宽: 5Mbps ~ 10Mbps(按需弹性)
- 说明:
- 这种配置下,Nacos 和 Gateway 会占用较多内存。
- MySQL 建议独立进程或容器,避免与 Java 应用争抢内存导致 GC 频繁。
- 必须开启 Swap,防止 OOM 瞬间杀进程。
方案 B:标准生产推荐(主流选择)
- 应用服务器 (App Servers): 每台 4C 8G 或 8C 16G
- 部署方式:使用 Docker/K8s 部署各微服务实例。
- 每个微服务实例 JVM 初始堆
-Xms和最大堆-Xmx设置为物理内存的 1/2 到 2/3。 - 例如:8C 16G 机器,可跑 2~3 个中等负载的微服务实例。
- 中间件服务器 (Middleware): 独立部署
- Nacos: 2C 4G x 2(集群模式,至少2节点保证高可用)
- Seata: 2C 4G x 1(如使用分布式事务)
- SkyWalking/Elasticsearch: 2C 4G x 1(如需要链路追踪)
- 数据库服务器: 独立部署
- MySQL: 4C 16G 或更高,SSD 磁盘,主从架构。
- Redis: 2C 4G,持久化关闭或仅 AOF,内存足够即可。
- 网关服务器: 4C 8G x 2(负载均衡后接入)
方案 C:高可用集群(大型企业)
- Kubernetes 集群:
- Master 节点: 3x 2C 4G
- Worker 节点: 若干 4C 8G 或 8C 16G
- 根据 Pod 资源请求(Requests/Limits)自动调度。
- 云原生数据库: 直接使用 RDS(阿里云/AWS等),不自己维护 MySQL。
- 云原生缓存: 直接使用 Redis Cloud。
- 优势: 运维成本低,故障自愈能力强。
三、 关键配置细节(比硬件更重要)
1. JVM 调优是核心
RuoYi-Cloud 基于 Spring Boot,JVM 参数直接影响稳定性。
# 示例:8G 内存的应用
-Xms4g -Xmx4g
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/data/logs/heapdump.hprof
- 不要设置过小堆内存,否则 Young GC 太频繁。
- 不要设置过大堆内存,否则 Full GC 停顿时间长。
- 生产环境务必启用 G1 GC,并调整
MaxGCPauseMillis。
2. 数据库连接池
- 使用 HikariCP(RuoYi-Cloud 默认)。
maximum-pool-size设置规则:- CPU 核数 * 2 + 有效磁盘数
- 一般不超过 20~50,具体看业务 SQL 复杂度。
- 严禁在代码中硬编码连接数,通过配置文件动态调整。
3. 日志管理
- 微服务日志量巨大。
- 本地磁盘只保留最近 7 天日志。
- 立即接入 ELK 或 Loki + Promtail,将日志集中收集。
- 否则,磁盘 IO 会成为瓶颈,甚至撑爆系统盘。
4. 网络与安全
- 内网通信: Nacos、Gateway、Service 之间走内网 IP,不走公网。
- 防火墙: 只开放必要端口(如 80, 443, SSH, 2181(Nacos), 3306(仅限内网))。
- SSL/TLS: 生产环境强制 HTTPS,内部服务间也可启用 mTLS(如果使用 K8s Ingress)。
四、 避坑指南
-
不要用同一台机器跑所有服务
尤其是 Nacos 和 MySQL。它们对 IO 和内存敏感,一旦抖动,整个微服务雪崩。 -
不要忽视 Swap
Linux 服务器务必配置 Swap 分区(大小 = 内存的 1~2 倍),作为最后一道防线,避免 OOM Killer 直接杀死进程。 -
不要忽略监控
没有监控的生产环境等于盲人摸象。- 必装:Prometheus + Grafana(监控 JVM、CPU、内存、QPS、延迟)。
- 可选:SkyWalking(链路追踪,定位慢接口)。
-
备份策略
- MySQL 每日全备 + Binlog 实时备份。
- Nacos 配置定期导出。
- 代码仓库 Git 备份。
五、 最终建议
- 初创/小项目: 买一台 4C 8G 或 8C 16G 的云服务器,用 Docker Compose 部署,MySQL 用云厂商提供的免费试用或低配 RDS。总成本控制在 500 元/月以内。
- 中型企业: 采用 K8s 或裸金属服务器,应用层 3 节点起,中间件独立部署,数据库用高可用版 RDS。总成本 2000~5000 元/月。
- 大型项目: 完全云原生,使用 K8s + Service Mesh + 云数据库,按量付费,弹性伸缩。
记住:最好的配置不是最贵的,而是最适合你当前业务增长速度和运维能力的。
先跑起来,再优化。监控报警设好,比盲目加硬件更管用。
云知道CLOUD