Windows 11 下 Java 开发环境优化:弃用 Docker,改用 FlyEnv 管理原生服务
·
前言
在 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 侧)
- 内存常驻:Docker Desktop 即使未运行容器,
com.docker.backend.exe和 WSL2 虚拟机也常驻占用 1.5GB~2GB 内存。 - IO 性能:虽然 WSL2 性能尚可,但跨文件系统(Win
/mnt/c到 Linux)的 Maven 依赖下载和编译依然有明显的性能损耗。 - 端口映射繁琐: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 512mb和maxmemory-policy allkeys-lru。
3. IDEA 连接配置
由于服务运行在 localhost,IDEA 连接配置几乎零改动,只需将 JDBC URL 从 Docker 的内部地址改为 127.0.0.1。
更多推荐
所有评论(0)