部署若依微服务版对Linux操作系统有什么要求?

部署若依微服务版(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 系统进行以下调优,以避免性能瓶颈:

  1. 关闭 Swap
    Java 应用对 Swap 敏感,频繁交换会导致性能急剧下降。建议在 /etc/fstab 中注释掉 swap 分区,或使用 swapoff -a 临时关闭。
  2. 文件描述符限制 (ulimit)
    微服务启动大量连接,默认限制(通常为 1024)不足。

    # 编辑 /etc/security/limits.conf
    * soft nofile 65535
    * hard nofile 65535
    root soft nofile 65535
    root hard nofile 65535
  3. 时间同步
    分布式系统对时间一致性要求极高,务必配置 chronyntp 服务进行时间同步,防止因时钟不同步导致的 Token 验证失败或事务异常。
  4. SELinux
    在生产环境中,建议将 SELinux 设置为 Permissive 模式或直接 Disabled,以免其拦截 Java 应用的端口绑定或文件读写操作(具体视安全策略而定)。

总结

部署若依微服务版的最佳实践是选择 CentOS 7.9/Ubuntu 20.04 LTS 作为操作系统,配备 4 核 CPU + 8GB 内存 的服务器,并确保已正确安装 JDK 17MySQL 8.0RedisNacos。如果是生产环境,强烈建议使用 Docker ComposeKubernetes 进行容器化编排,以简化中间件的管理和扩展。

未经允许不得转载:CLOUD技术博 » 部署若依微服务版对Linux操作系统有什么要求?