部署若依微服务版(RuoYi-Cloud)对 Linux 操作系统的要求主要集中在基础环境依赖、资源规格以及系统配置三个方面。由于该架构基于 Spring Cloud Alibaba,涉及多个中间件(如 Nacos、Sentinel、Seata、Redis、MySQL 等),因此对操作系统的稳定性和兼容性有一定要求。
以下是具体的部署要求详解:
1. 操作系统版本与内核
- 推荐发行版:CentOS 7.9、CentOS Stream 8/9、Ubuntu 20.04 LTS / 22.04 LTS、Debian 10/11。
- 注意:生产环境建议使用长期支持版(LTS)。虽然较新的 CentOS 7 已停止维护,但在国内仍广泛使用;若追求新特性,可选择 Ubuntu LTS 或 Rocky Linux/AlmaLinux。
- 内核版本:建议 Linux 内核版本不低于 3.10。若使用 Docker 部署,宿主机内核版本需满足容器运行时(Docker/Kubernetes)的要求。
- 架构支持:主流 x86_64 (AMD64) 架构完全兼容。ARM64 架构(如鲲鹏、飞腾服务器)通常也支持,但需确保所有组件(特别是 JDK 和 MySQL)有对应的 ARM64 版本。
2. 核心软件环境依赖
若依微服务版强依赖于以下软件栈,操作系统必须能顺利安装并运行它们:
| 组件 | 最低版本要求 | 说明 |
|---|---|---|
| JDK | OpenJDK 17 (推荐) | 若依微服务版基于 Spring Boot 3.x + Spring Cloud 2022+,必须使用 JDK 17。部分旧教程可能提到 JDK 8,那是不适用于当前微服务版的。 |
| Maven | 3.6.0+ | 用于构建项目。 |
| Nacos | 2.x | 注册中心与配置中心,需占用端口 8848。 |
| MySQL | 5.7 或 8.0+ | 数据库存储,需开启 log_bin 等参数。 |
| Redis | 5.0+ | 缓存服务,需配置持久化。 |
| Docker (可选) | 20.10+ | 如果采用容器化部署,宿主机需安装 Docker Engine。 |
| Node.js | 16.x 或 18.x | 仅前端模块开发需要,后端服务无需 Node.js。 |
3. 硬件资源建议
由于微服务架构包含多个独立进程(Gateway, Auth, System, Job, Monitor 等)及中间件,资源消耗相对单体应用较大。
- CPU:
- 最小:2 核(仅用于开发测试或极低并发)。
- 推荐:4 核及以上(生产环境建议 4 核起步,以保证网关鉴权、业务逻辑和中间件调度的流畅度)。
- 内存 (RAM):
- 最小:4 GB(极易发生 OOM,不推荐)。
- 推荐:8 GB 及以上。
- JVM 堆内存分配:每个服务实例通常预留 2G-4G。
- 中间件:Nacos、Redis、MySQL 各需占用数百 MB 到 1GB 不等。
- 磁盘空间:
- 系统盘:至少 50 GB(SSD 优先),用于安装 OS、软件及日志文件。
- 数据盘:根据业务量动态调整,建议预留 100 GB+ 用于数据库数据和文件存储。
- 网络:
- 内网带宽:服务间调用频繁,建议局域网千兆以上。
- 网络带宽:取决于用户访问量。
- 端口开放:需确保防火墙放行必要端口(如 80, 443, 8848, 3306, 6379, 20880 等)。
4. 系统级配置优化
在正式部署前,建议对 Linux 系统进行以下调优,以避免性能瓶颈:
- 关闭 Swap:
Java 应用对 Swap 敏感,频繁交换会导致性能急剧下降。建议在/etc/fstab中注释掉 swap 分区,或使用swapoff -a临时关闭。 - 文件描述符限制 (
ulimit):
微服务启动大量连接,默认限制(通常为 1024)不足。# 编辑 /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535 root soft nofile 65535 root hard nofile 65535 - 时间同步:
分布式系统对时间一致性要求极高,务必配置chrony或ntp服务进行时间同步,防止因时钟不同步导致的 Token 验证失败或事务异常。 - SELinux:
在生产环境中,建议将 SELinux 设置为 Permissive 模式或直接 Disabled,以免其拦截 Java 应用的端口绑定或文件读写操作(具体视安全策略而定)。
总结
部署若依微服务版的最佳实践是选择 CentOS 7.9/Ubuntu 20.04 LTS 作为操作系统,配备 4 核 CPU + 8GB 内存 的服务器,并确保已正确安装 JDK 17、MySQL 8.0、Redis 和 Nacos。如果是生产环境,强烈建议使用 Docker Compose 或 Kubernetes 进行容器化编排,以简化中间件的管理和扩展。
CLOUD技术博