RuoYi-Cloud 基于 Spring Cloud Alibaba 构建,是一个典型的微服务架构。其服务器配置需求高度依赖于部署模式(单机测试 vs 生产集群)、业务并发量以及数据量。
以下是针对不同场景的推荐配置方案:
📌 核心原则
- 内存是瓶颈:Java 微服务非常消耗内存,每个服务实例至少需要分配足够 JVM 堆内存。
- 中间件独立部署:Nacos、Redis、MySQL、Sentinel、Seata 等中间件建议单独部署或合理分配资源,避免与业务服务争抢资源。
- 集群化要求:生产环境必须保证高可用,关键组件需多节点部署。
✅ 一、开发/测试环境(单机部署)
适用于个人学习、内部小团队开发测试,所有服务部署在一台服务器上。
| 组件 | 推荐配置 |
|---|---|
| CPU | 4核 ~ 8核 |
| 内存 | 16GB ~ 32GB(关键!建议 ≥16G) |
| 硬盘 | SSD 100GB+ |
| 操作系统 | CentOS 7.x / Ubuntu 20.04+ |
| 说明 | 所有 RuoYi 微服务 + Nacos + MySQL + Redis + Sentinel 全部跑在这一台机器上。内存不足会导致频繁 GC 甚至 OOM。 |
💡 优化建议:
- 调整各服务的
jvm参数,限制最大堆内存(如-Xmx512m)。- 关闭不需要的模块(如代码生成器、定时任务等)。
- 使用 Docker Compose 一键部署更便捷。
✅ 二、小型生产环境(基础集群)
适用于用户量较小(日活几千~几万),追求基本高可用。
🖥️ 应用服务器(运行 RuoYi 微服务)
| 组件 | 推荐配置 |
|---|---|
| 数量 | 2~3 台(实现负载均衡) |
| 每台 CPU | 4核 ~ 8核 |
| 每台内存 | 8GB ~ 16GB |
| 每台硬盘 | SSD 100GB+ |
| 说明 | 通过 Nginx 或网关做负载分发,每个服务至少 2 个实例。 |
🗄️ 中间件服务器(独立部署)
| 组件 | 推荐配置 |
|---|---|
| Nacos | 2台,每台 4核 8GB(集群模式) |
| MySQL | 主从架构,每台 4核 8GB,SSD 磁盘 |
| Redis | 哨兵或 Cluster 模式,每台 2核 4GB |
| Sentinel | 可与应用服务器共用,或独立 1台 2核 4GB |
| Seata(如需分布式事务) | 1台 2核 4GB |
💡 总资源估算:约需 5~7 台服务器,总内存 ≥ 64GB。
✅ 三、中大型生产环境(标准集群)
适用于企业级应用,高并发、高可用、易扩展。
🖥️ 应用层(无状态服务)
| 组件 | 推荐配置 |
|---|---|
| 数量 | 根据 QPS 动态伸缩,至少 3~5 台 |
| 每台 CPU | 8核 ~ 16核 |
| 每台内存 | 16GB ~ 32GB |
| 说明 | 建议部署在 Kubernetes 或 Docker Swarm 中,自动扩缩容。 |
🗄️ 中间件层(高可用集群)
| 组件 | 推荐配置 |
|---|---|
| Nacos | 3~5 台,每台 8核 16GB(ZooKeeper 或 Derby 存储) |
| MySQL | MHA 或 InnoDB Cluster,每台 8核 32GB+,高性能 SSD/NVMe |
| Redis | Redis Cluster 6~9 节点,每台 4核 16GB |
| RocketMQ/Kafka | 3 Broker + 2 NameServer,每台 8核 16GB |
| Sentinel | Dashboard + 控制台集群,每台 4核 8GB |
| Seata | TC Server 集群,每台 4核 8GB |
🌐 接入层
| 组件 | 推荐配置 |
|---|---|
| Nginx/LB | 2台(Keepalived 高可用),每台 4核 8GB |
| API Gateway | 可与应用服务同机或独立,每台 4核 8GB |
💡 总资源估算:约需 15~25+ 台服务器,总内存 ≥ 512GB,建议使用云厂商 K8s 托管服务降低成本。
📊 性能参考指标(单服务实例)
| 服务类型 | 最小内存 | 推荐内存 | 典型 QPS(单机) |
|---|---|---|---|
| 认证授权(Auth) | 512MB | 1GB | 500~1000 |
| 用户中心(User) | 512MB | 1GB | 300~800 |
| 系统管理(System) | 256MB | 512MB | 200~500 |
| 代码生成(Gen) | 256MB | 512MB | 低频调用 |
| 监控日志(Monitor) | 512MB | 1GB | 依赖日志写入速度 |
⚠️ 注意:以上 QPS 为理想值,实际受数据库连接池、SQL 效率、网络延迟等影响。
🛠️ 部署优化建议
- JVM 调优:
-Xms512m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 - 启用压缩:Nacos、Seata 等支持开启 gzip 压缩减少传输开销。
- 缓存策略:热点数据务必走 Redis,避免直连 MySQL。
- 限流降级:合理使用 Sentinel 防止雪崩。
- 日志收集:ELK 或 Loki + Grafana 集中管理日志,避免本地磁盘写满。
- 容器化部署:强烈建议使用 Docker + Kubernetes,便于弹性伸缩和资源隔离。
☁️ 云部署建议(阿里云/腾讯云/AWS)
| 服务 | 推荐云产品 |
|---|---|
| 计算 | ECS(按量付费或包年包月)或 ACK(K8s) |
| 数据库 | RDS MySQL(主从高可用) |
| 缓存 | 云 Redis(哨兵/Cluster 版) |
| 注册中心 | 云 Nacos 或自建 |
| 对象存储 | OSS/COS(存放文件、图片) |
| CDN | 提速静态资源访问 |
✅ 总结
| 场景 | 最少服务器数 | 总内存建议 | 适用人群 |
|---|---|---|---|
| 学习/测试 | 1 台 | 16GB+ | 个人开发者 |
| 小型生产 | 5~7 台 | 64GB+ | 初创公司/中小项目 |
| 中大型生产 | 15~25+ 台 | 512GB+ | 企业级应用 |
🎯 起步建议:如果是首次部署,建议从 2 台 8核 16GB 服务器 开始:
- 一台部署 Nacos + MySQL + Redis(中间件)
- 另一台部署所有微服务 + Sentinel + Nginx
后续根据监控数据逐步横向扩展。
如需具体某台服务器的 Docker Compose 文件或 Kubernetes YAML 模板,可提供进一步帮助。
云知识CLOUD