RuoYi-Cloud 是一个基于 Spring Cloud Alibaba 的微服务架构,相比单体应用,它对服务器资源(尤其是内存和 CPU)以及网络带宽的要求更高。
核心原则:生产环境配置必须根据实际业务并发量、数据量和功能模块进行“量身定制”,没有固定的标准答案。 但我们可以提供一个基准参考方案和选型逻辑。
一、常见部署场景与推荐配置
场景 1:小型项目 / 内部系统 / 低并发(日活 < 500)
适用于企业内部 OA、CRM、后台管理系统等。
| 组件 | 推荐配置 | 说明 |
|---|---|---|
| Nacos | 2核 4GB | 注册中心 + 配置中心,轻量级即可 |
| Sentinel | 2核 2GB | 限流熔断,通常与 Nacos 或 Gateway 同机部署节省资源 |
| Gateway | 2核 4GB | API 网关,需处理路由和鉴权 |
| Auth (认证服务) | 2核 2GB | JWT 签发验证,负载较低 |
| System (系统服务) | 2核 4GB | 用户、角色、菜单管理等基础功能 |
| Gen (代码生成) | 2核 4GB | 模板渲染,偶尔使用 |
| Job (定时任务) | 2核 4GB | XXL-JOB 执行器,视任务复杂度而定 |
| Monitor (监控) | 2核 4GB | Spring Cloud Sleuth + Zipkin/Jaeger |
| MySQL | 4核 8GB SSD | 主库,建议独立部署或使用云数据库 RDS |
| Redis | 2核 4GB | 缓存会话、字典、验证码等 |
| MinIO/OSS | – | 对象存储,建议使用云服务或独立 NAS |
✅ 总硬件需求估算:约 6~8 台 2C4G/2C2G 虚拟机,或合并部署在 2~3 台高配机器上(如 4C8G × 2)。
场景 2:中型项目 / 公网业务 / 中等并发(日活 500~5000)
适用于面向公众的 SaaS 平台、电商后台、内容管理平台等。
| 组件 | 推荐配置 | 说明 |
|---|---|---|
| Nacos集群 | 3节点 × 4核 8GB | 高可用集群,避免单点故障 |
| Sentinel集群 | 2节点 × 4核 4GB | 分布式限流 |
| Gateway集群 | 2节点 × 4核 8GB | 负载均衡入口 |
| 各业务微服务 | 每服务 2核 4GB ~ 4核 8GB | 根据 QPS 动态扩容 |
| MySQL主从 | 主:4核 16GB 从:4核 16GB |
读写分离,提升查询性能 |
| Redis集群 | 3主3从 × 4核 8GB | 高可用缓存,支持持久化 |
| 消息队列(可选) | RabbitMQ/Kafka × 3节点 | 解耦异步任务 |
| 监控体系 | Prometheus + Grafana + ELK | 日志+指标+链路追踪 |
✅ 总硬件需求估算:10~15 台服务器,建议采用 Kubernetes (K8s) 或 Docker Swarm 容器化部署,实现弹性伸缩。
场景 3:大型项目 / 高并发 / 关键业务(日活 > 5000)
适用于X_X、X_X、大型电商平台等对稳定性要求极高的场景。
- 全部组件集群化部署(至少 3 节点)
- MySQL:MGR 或 Percona XtraDB Cluster 多主同步
- Redis:Cluster 模式分片存储
- 引入 MQ:Kafka/RabbitMQ 削峰填谷
- CDN + WAF:前端提速与安全防护
- 自动化运维:CI/CD + K8s + Helm + ArgoCD
- 灾备方案:异地多活或冷备份
✅ 总硬件需求估算:20+ 台物理机/虚拟机,或全面迁移至 阿里云 ACK / AWS EKS / 腾讯云 TKE 等云原生平台。
二、关键组件选型建议
1. 数据库(MySQL)
- 版本:MySQL 8.0+(性能更好,JSON 支持更强)
- 引擎:InnoDB
- 索引优化:确保所有查询字段有合适索引
- 连接池:HikariCP,最大连接数根据 CPU 核数设置(通常为
CPU核数×2 + 磁盘数)
2. 缓存(Redis)
- 版本:Redis 6.0+(支持多线程 I/O)
- 模式:单机用于小项目;集群用于中大型项目
- 淘汰策略:
allkeys-lru或volatile-lru - 持久化:开启 AOF + RDB 混合持久化
3. 注册中心 & 配置中心(Nacos)
- 模式:生产环境务必使用 集群模式(至少 3 节点)
- 存储后端:MySQL(比嵌入式 Derby 更稳定)
- 数据持久化:定期备份 Nacos 数据库
4. 网关(Spring Cloud Gateway)
- 线程模型:Netty 非阻塞 IO,适合高并发
- 限流集成:结合 Sentinel 做全局限流
- 静态资源:不要将图片/文件放在网关,应指向 MinIO/OSS
5. 文件存储(MinIO / OSS)
- 私有部署:MinIO 需要至少 4 个节点形成纠删码阵列
- 公有云:强烈推荐使用阿里云 OSS / 腾讯云 COS,免维护、自带 CDN
三、生产环境最佳实践
1. 安全加固
- 关闭不必要的端口暴露
- 使用 HTTPS(Nginx/Traefik 反向X_X终止 TLS)
- 敏感配置(密码、密钥)放入 Nacos 加密配置或 Vault
- 启用防火墙 + IP 白名单(仅允许内网访问 MySQL/Redis/Nacos)
2. 监控告警
- 应用监控:Micrometer + Prometheus + Grafana
- 链路追踪:SkyWalking 或 Zipkin
- 日志收集:ELK(Elasticsearch + Logstash + Kibana)或 Loki
- 告警通知:钉钉/企业微信/邮件机器人
3. 备份策略
- MySQL:每日全量 + 每小时 binlog 增量备份
- Redis:AOF 实时同步 + 每日快照
- Nacos:每周备份 MySQL 中的 nacos_config 表
- 代码仓库:GitLab/GitHub 自动备份
4. 部署方式选择
| 方式 | 适用规模 | 优点 | 缺点 |
|---|---|---|---|
| 手动部署(jar包) | 小型 | 简单直观 | 运维成本高,易出错 |
| Docker Compose | 中小型 | 隔离性好,一键启停 | 缺乏弹性伸缩能力 |
| Kubernetes (K8s) | 中大型及以上 | 弹性伸缩、自愈、滚动更新 | 学习曲线陡峭,运维复杂 |
💡 推荐:对于大多数企业用户,Docker + Docker Compose 是性价比最高的起步方案;若团队有 DevOps 能力,逐步过渡到 K8s。
四、成本优化建议
- 合并部署:初期可将多个轻量服务(如 Auth、System、Gen)部署在同一台服务器上,通过 JVM 参数限制内存。
- 使用云厂商 Serverless:如阿里云函数计算 FC,按调用次数付费,适合低频接口。
- 冷热数据分离:历史数据归档到 MySQL 从库或 Hive,主库只保留近半年活跃数据。
- 利用免费额度:很多云厂商提供新用户免费试用资源,可用于测试和预发环境。
五、总结 checklist
✅ 是否已启用 HTTPS?
✅ 是否配置了防火墙和白名单?
✅ 是否开启了 MySQL 慢查询日志并优化?
✅ Redis 是否设置了最大内存和淘汰策略?
✅ Nacos 是否集群部署且数据持久化到 MySQL?
✅ 是否有完整的备份恢复演练记录?
✅ 是否配置了 CPU/Memory/磁盘使用率告警?
📌 最后提醒:
请先在测试环境模拟真实流量压测(使用 JMeter 或 Gatling),观察各服务的 CPU、内存、GC 情况,再据此调整生产环境配置。切勿直接上线未经压测的配置!
如需进一步帮助,请提供你的预期日活用户数、主要功能模块列表和预算范围,我可以为你定制更详细的架构图和资源清单。
云知识CLOUD