努力
奋斗

RuoYi-Cloud生产环境服务器配置怎么选择?

服务器价格表

直接上干货。RuoYi-Cloud 是基于 Spring Cloud Alibaba 的微服务架构,它的资源消耗比单体应用(如 RuoYi-Vue)要高得多。生产环境配置选型的核心逻辑不是“越大越好”,而是“够用且有余量”,同时要考虑集群部署后的总负载。

以下是基于实际生产经验(日活 1w-5w 级别,中等并发)的配置建议和分析逻辑。

一、 核心原则:先拆分,后定配

RuoYi-Cloud 默认包含多个微服务模块(gateway, system, job, monitor, gen 等)。在选型前,你必须明确两点:

  1. 是否全量部署? 很多项目不需要所有模块。比如 gen(代码生成)和 job(定时任务)如果非高频使用,可以单独部署或降低配置优先级。
  2. JVM 内存占比: 微服务启动开销大,每个服务至少需要预留足够的堆外内存和元空间。切忌给 Linux 服务器分配过多 CPU 而内存不足,或者反之。

二、 具体服务器配置推荐表

方案 A:中小型生产环境(推荐起步配置)

适合:初创团队、内部系统、日 PV < 10万。
策略: 采用“小规格多实例”或“中等规格单节点+容器化”。这里以物理机/虚拟机单机部署为例(生产环境强烈建议使用 Docker/K8s 编排,但底层硬件配置逻辑一致)。

组件 最低配置 (仅跑通) 推荐配置 (稳定运行) 说明
CPU 4核 8核 微服务间 RPC 调用、序列化、网关路由都需要 CPU。8核是性价比甜点。
内存 8GB 16GB – 32GB 最关键指标。Spring Boot 默认堆内存较大,加上 GC 开销,16G 是舒适线。若部署 Nacos + MySQL + Redis + 全部微服务,32G 更稳妥。
硬盘 SSD 100G SSD 200G+ 必须用 SSD。日志文件、数据库数据、Nacos 配置中心都会快速占满磁盘。
带宽 5Mbps 10Mbps – 20Mbps 前端静态资源走 CDN,后端 API 返回 JSON。10M 带宽足够支撑几千 QPS 的纯接口访问。

方案 B:中大型生产环境(高可用集群)

适合:对外 SaaS 平台、日 PV > 50万、有严格 SLA 要求。
策略: 拆分为多台服务器,通过负载均衡(Nginx/SLB)分发。

  1. 网关层 (Gateway):

    • 配置:4C 8G x 2台 (做集群)
    • 理由:网关是流量入口,压力最大,需独立部署并横向扩展。
  2. 基础中间件层:

    • Nacos (注册中心/配置中心): 2C 4G x 3台 (集群模式,保证高可用)
    • Redis: 4C 8G (主从或哨兵模式,内存要大,因为缓存数据都在里面)
    • MySQL: 8C 16G 或更高 (根据数据量调整,建议独立服务器,不要和微服务混部)
    • Seata (分布式事务,如有): 2C 4G
  3. 业务微服务层 (System, Gen, Job, Monitor 等):

    • 配置:4C 8G 或 4C 16G
    • 数量:根据实际服务数量决定。通常建议每个核心服务至少 2 个实例(一主一备或负载均衡),所以你需要至少 2-4 台这种规格的服务器来承载业务逻辑。

三、 关键避坑指南(血泪经验)

  1. 内存是瓶颈,不是 CPU

    • 很多开发者看着服务器 CPU 只有 20% 利用率,就觉得浪费,拼命加 CPU。实际上,OOM(OutOfMemoryError)才是微服务杀手。
    • 设置 JVM 参数:application.yml 或启动脚本中,务必显式设置 -Xms-Xmx
      • 例如:对于 8G 内存的服务器,单个服务建议 -Xms2g -Xmx2g
      • 如果不确定,可以先不写,观察监控(Prometheus/Grafana 或 Arthas),发现 Full GC 频繁再调整。
  2. 不要把所有东西塞进一台机器

    • 错误做法:在一台 4C 8G 的服务器上同时部署 MySQL、Redis、Nacos 和所有微服务。
    • 后果:一旦某个服务内存泄漏或 SQL 慢查询,整个服务器宕机,连带数据库也挂了。
    • 正确做法:中间件与业务分离。即使只有一台云服务器,也建议将 MySQL 和 Redis 放在独立进程或容器中,并通过资源限制(cgroups)隔离。
  3. 带宽别省

    • 国内云厂商(阿里云、腾讯云等)按固定带宽计费很贵。如果你的前端图片、JS、CSS 没有上 CDN,那么带宽会成为巨大瓶颈。
    • 确保所有静态资源都走 OSS/COS + CDN,后端服务器只处理 API 请求。这样 5Mbps 带宽也能跑出不错的性能。
  4. 监控先行

    • 在生产环境上线前,务必部署 SkyWalkingZipkin 进行链路追踪,配合 Prometheus + Grafana 监控 JVM 内存、CPU、GC 次数。
    • 没有监控的微服务生产环境,等于盲人摸象。出问题只能靠猜。
  5. 关于 Nacos 集群

    • Nacos 支持单机模式和集群模式。生产环境必须使用集群模式(至少 3 个节点)。
    • 注意:Nacos 集群节点数必须是奇数(3、5、7),以保证 Raft 协议选举成功。不要用 2 个节点,会脑裂。

四、 总结建议

  • 预算有限/测试转生产过渡期:4C 8G 或 4C 16G 的云服务器,部署 Docker Compose 一键拉起所有服务。这是最经济的验证方式。
  • 正式生产环境(推荐):
    • 1台 4C 8G 用于 Gateway 集群(2实例)
    • 1台 4C 8G 用于 Nacos 集群(3实例,可与其他服务混部但需限制资源)
    • 1台 8C 16G 用于 MySQL + Redis
    • 2台 4C 8G 用于业务微服务集群(每服务至少 2 实例)
    • 总计约 4-5 台服务器,成本可控,架构清晰。

最后提醒:配置不是一成不变的。 先按推荐配置上线,接入真实流量后,通过监控数据逐步调优。宁可初期稍冗余,也不要因配置不足导致线上故障。