努力
奋斗

RuoYi-Cloud 部署分布式集群需要什么配置的服务器?

服务器价格表

RuoYi-Cloud 基于 Spring Cloud Alibaba,组件多、依赖重。所谓的“配置”完全取决于你的业务体量和并发量。

别被网上那些“高配神机”忽悠了。对于大多数中小型企业或内部系统,核心原则是:内存优先,CPU 其次,带宽看情况。

下面分场景给出具体的服务器配置建议(以 CentOS 7/8 或 Ubuntu 20.04+ 为例):

一、 单机测试/开发环境

场景:个人学习、原型验证、本地跑通流程。
部署方式:所有服务(Nacos, Gateway, Auth, System, Gen 等)全部装在一台机器上,或者用 Docker Compose 一键拉起。

  • 配置建议:
    • CPU:4 核
    • 内存:16 GB(这是底线,低于 8G 会卡死,因为 Nacos + MySQL + Redis + 多个微服务进程非常吃内存)
    • 硬盘:SSD 100 GB+
    • 带宽:3 Mbps – 5 Mbps(仅内网或低并发访问)

注意:如果是为了省钱想搞 2C4G 甚至 2C2G,除非你只启动最核心的几个服务并手动关闭不需要的模块,否则极易出现 OOM(内存溢出)。

二、 小型生产环境(轻量级集群)

场景:日活几千到几万,内部管理系统,非高并发 C 端应用。
部署方式:基础中间件(MySQL, Redis, MQ)独立部署或容器化;微服务节点至少 2 个实现高可用。

1. 基础中间件服务器(建议独立)

  • MySQL:
    • CPU:4 核
    • 内存:8 GB(InnoDB 缓冲池需要足够内存保证性能)
    • 硬盘:SSD 200 GB+(IOPS 很重要)
  • Redis:
    • CPU:2 核
    • 内存:4 GB
  • Nacos(注册中心+配置中心):
    • CPU:2 核
    • 内存:4 GB(建议开启持久化,数据量大了后内存占用会增加)
  • RocketMQ/Kafka(消息队列):
    • CPU:2 核
    • 内存:4 GB

2. 微服务应用服务器(集群节点)

  • 数量:至少 2 台(避免单点故障)
  • 单台配置:
    • CPU:4 核
    • 内存:8 GB
    • 硬盘:SSD 100 GB+
    • 带宽:5 Mbps – 10 Mbps

为什么这么配?
RuoYi-Cloud 默认包含很多模块(代码生成、定时任务、监控等)。每个微服务 JVM 初始堆内存设得稍大一点(比如 -Xms512m -Xmx1g),加上操作系统开销,4C8G 能稳稳运行 3-5 个核心微服务而不频繁 GC。

三、 中型生产环境(标准集群)

场景:有一定外部用户访问,并发较高,对稳定性要求高。
部署方式:全面容器化(K8s 或 Docker Swarm),各组件水平扩展。

1. 基础中间件(高可用架构)

  • MySQL:主从复制架构,双机热备。
    • 每台:8 核 / 16 GB 内存 / SSD 500 GB+
  • Redis:Cluster 集群模式。
    • 每个节点:4 核 / 8 GB 内存
  • Nacos:集群模式(至少 3 节点)。
    • 每个节点:4 核 / 8 GB 内存
  • Seata(分布式事务):
    • 如果用到 AT 模式,建议单独一台:4 核 / 8 GB 内存

2. 微服务应用服务器

  • 数量:根据实际 QPS 弹性伸缩,通常起步 4-6 台
  • 单台配置:
    • CPU:8 核
    • 内存:16 GB
    • 硬盘:SSD 200 GB+
    • 带宽:10 Mbps – 20 Mbps

关键点:8C16G 的机器可以承载更多微服务实例,或者为每个服务分配更大的 JVM 堆内存,减少 Full GC 频率,提升响应速度。

四、 大型生产环境(高性能集群)

场景:高并发 C 端产品,秒杀活动,海量数据。
部署方式:Kubernetes 集群,自动化运维,全链路压测。

  • 中间件:使用云厂商托管服务(RDS, Redis Cluster, RocketMQ 专业版等),自建成本高且维护困难。
  • 应用服务器:
    • CPU:16 核+
    • 内存:32 GB+
    • 网络:万兆内网,网络带宽按需购买弹性 IP 或走 CDN。

五、 避坑指南 & 优化建议

  1. JVM 参数必须调优
    RuoYi-Cloud 默认的 application.yml 或启动脚本中的 JVM 参数往往不适合生产环境。

    • 不要设置 -Xmx 过大,导致 Swap 交换。
    • 推荐参数示例(针对 8G 内存机器):
      -Xms512m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200
    • 对于 16G 以上机器,可以适当增加堆内存,但不要超过物理内存的 70%。
  2. Linux 内核参数优化
    部署前务必修改 /etc/sysctl.conf:

    net.core.somaxconn = 32768
    net.ipv4.tcp_max_syn_backlog = 32768
    vm.swappiness = 10  # 降低 swap 使用倾向
    fs.file-max = 655350

    然后执行 sysctl -p 生效。

  3. Nacos 数据库选择

    • 测试环境用 Derby(内置)。
    • 生产环境必须用 MySQL,并且建议 MySQL 版本 >= 5.7 或 8.0。Nacos 在 Derby 下长时间运行会出现连接泄漏和数据不一致问题。
  4. 日志管理
    RuoYi-Cloud 默认输出大量 INFO 级别日志。生产环境建议:

    • 使用 ELK 或 Loki + Grafana 收集日志。
    • 本地磁盘只保留最近 7 天的滚动日志,避免磁盘写满导致服务崩溃。
  5. 安全加固

    • 禁用 root 远程登录。
    • 防火墙只开放必要端口(如 80, 443, 9200, 9090 等)。
    • Nacos 控制台必须修改默认账号密码(nacos/nacos),并启用鉴权。

总结

环境 核心中间件配置 应用节点配置 节点数量 总成本估算(月)
开发/测试 1x 4C16G (含 DB/Redis/Nacos) – 1 ¥100-200
小型生产 3x 4C8G (DB, Redis, Nacos) 2x 4C8G 5 ¥500-800
中型生产 3x 8C16G (HA 中间件) 4x 8C16G 7+ ¥1500-2500
大型生产 云托管服务 + K8s 集群 按需弹性 动态 ¥5000+

最后忠告:先按“小型生产”配置搭建,通过 JMeter 进行压测。观察 CPU、内存、GC 次数和网络 IO。哪里瓶颈补哪里,不要一开始就过度设计。RuoYi-Cloud 的优势在于快速开发,而不是极致性能优化。如果真遇到性能瓶颈,优先考虑 SQL 优化、缓存策略和代码逻辑,而不是盲目加机器。