前言

在 Windows 11 上进行 Java 后端开发时,Docker Desktop 一直是个痛点。无论是基于 WSL2 的后台占用,还是文件系统的 IO 性能瓶颈,都严重影响了 Maven 构建和热部署的效率。近期尝试将本地中间件环境从 Docker 迁移至 FlyEnv 管理,资源占用显著降低,构建速度回归预期。本文记录迁移过程及注意事项。

环境说明

  • OS:Windows 11 Pro 23H2
  • IDE:IntelliJ IDEA 2023.3
  • JDK:OpenJDK 8 & 17(多模块项目,需切换)
  • 原环境:Docker Desktop (WSL2) + MySQL/Redis/Kafka 容器
  • 目标环境:FlyEnv + Windows Native Services

弃用 Docker 的原因(Windows 侧)

  1. 内存常驻:Docker Desktop 即使未运行容器,com.docker.backend.exe 和 WSL2 虚拟机也常驻占用 1.5GB~2GB 内存。
  2. IO 性能:虽然 WSL2 性能尚可,但跨文件系统(Win /mnt/c 到 Linux)的 Maven 依赖下载和编译依然有明显的性能损耗。
  3. 端口映射繁琐:Windows 防火墙与 Docker NAT 网络偶尔冲突,导致 localhost 访问异常,排查成本高。

FlyEnv 在 Windows 下的适配性

FlyEnv 在 Windows 下主要扮演了 Service Manager 的角色,它通过直接管理 Windows Service 或原生进程来运行中间件,避免了虚拟化层。

核心优势

  • 进程级运行:MySQL、Redis 等服务直接运行在 Windows 内核上,无虚拟化损耗。
  • 资源可控:不再强制预留 WSL2 的内存配额,内存占用随用随取。
  • 路径直观:数据目录直接存储在 D:/DevData 等物理路径,备份和迁移极其方便。

实操步骤

1. 安装 FlyEnv

从官网下载 Windows 安装包。安装时注意勾选 Add to PATH(如果需要命令行调用),并允许防火墙通过。

2. 中间件配置(以 MySQL 和 Redis 为例)

MySQL
  • 在 FlyEnv 的 Services 面板中找到 MySQL。
  • 数据目录:建议修改 Data Dir 至非系统盘(如 D:\FlyEnv\mysql\data),防止系统盘爆满。
  • 端口:默认 3306,若被占用可在 my.ini 中修改。
  • 初始化:FlyEnv 会自动初始化 data 目录,首次启动较慢,后续秒开。
Redis
  • 安装 Redis 服务。
  • 持久化:修改 redis.windows.conf,开启 appendonly yes,确保数据不丢失。
  • 内存限制:Windows 下 Redis 容易吃掉所有内存,建议在配置中设置 maxmemory 512mbmaxmemory-policy allkeys-lru

3. IDEA 连接配置

由于服务运行在 localhost,IDEA 连接配置几乎零改动,只需将 JDBC URL 从 Docker 的内部地址改为 127.0.0.1

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐