JeecgBoot容器化部署全攻略:从单体到微服务的企业级实践
在现代企业应用开发中,容器化部署和微服务架构已成为提升系统弹性与扩展性的关键技术。本文将系统讲解JeecgBoot从环境准备到高可用架构的完整部署流程,帮助开发团队实现从传统部署到云原生架构的平滑过渡,解决环境一致性、服务编排和弹性伸缩等核心痛点。
一、环境准备:3步完成部署前检查
1.1 基础设施要求与资源规划
部署JeecgBoot前需确保环境满足以下条件,不同规模用户应采用差异化配置:
| 用户规模 | CPU核心 | 内存 | 磁盘 | Docker版本 | Kubernetes版本 |
|---|---|---|---|---|---|
| 开发环境 | 2核 | 4GB | 50GB | 20.10+ | 1.21+ |
| 中小企业 | 4核 | 8GB | 100GB SSD | 24.0+ | 1.26+ |
| 大型企业 | 8核 | 16GB | 200GB SSD | 24.0+ | 1.26+ |
资源配置计算公式:
- 内存需求 = 基础内存(4GB) + 并发用户数 × 0.02GB
- CPU需求 = 基础CPU(2核) + 并发用户数 × 0.005核
- 磁盘需求 = 基础存储(50GB) + 日数据量 × 30天 × 1.5倍冗余
1.2 环境依赖检查与安装
执行以下命令验证系统环境是否就绪:
# 检查Docker是否安装
docker --version && docker-compose --version
# 检查K8s环境(如使用K8s部署)
kubectl version --short
# 安装缺失依赖(以Ubuntu为例)
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
预期结果:Docker版本≥20.10,Docker Compose≥2.0,K8s客户端显示集群信息。
1.3 源码获取与项目结构解析
使用Git克隆官方仓库并了解部署相关核心文件:
git clone https://gitcode.com/GitHub_Trending/je/jeecg-boot.git
cd jeecg-boot
关键部署文件说明:
docker-compose.yml:单体应用部署配置docker-compose-cloud.yml:微服务架构部署配置jeecg-boot/jeecg-server-cloud/:微服务核心模块jeecg-boot/db/:数据库初始化脚本
二、部署实施:两种架构方案任你选
2.1 Docker Compose单体部署(开发/小规模应用)
单体部署适合快速验证和开发环境,通过3条命令即可完成部署:
# 构建并启动所有服务
docker-compose up -d --build
# 查看服务状态
docker-compose ps
# 检查服务日志
docker-compose logs -f jeecg-boot-system
服务架构说明: 单体部署包含4个核心服务组件,通过Docker网络实现内部通信:
- MySQL数据库(13306端口)
- Redis缓存(6379端口)
- 后端服务(8080端口)
- 前端服务(80端口)
图1:JeecgBoot单体部署架构示意图,展示了各服务组件的通信关系
2.2 Docker Compose微服务部署(企业级应用)
微服务架构提供更高的扩展性和容错能力,部署命令如下:
# 启动微服务集群
docker-compose -f docker-compose-cloud.yml up -d
# 检查服务健康状态
docker-compose -f docker-compose-cloud.yml ps | grep -v "Up"
核心服务说明: 微服务架构在单体基础上增加了服务治理组件:
- Nacos服务注册与配置中心(8848端口)
- Gateway API网关(9999端口)
- Sentinel熔断限流(9000端口)
- XXL-Job分布式任务调度(9080端口)
2.3 部署状态验证与故障排除
服务启动后执行以下检查确认部署成功:
# 检查端口监听状态
netstat -tulpn | grep -E "80|8080|8848|9999"
# 验证数据库连接
docker exec -it jeecg-boot-mysql mysql -uroot -pjeecg123 -e "show databases;"
# 测试后端API可用性
curl http://localhost:8080/jeecg-boot/actuator/health
常见故障排除:
- 端口冲突:修改docker-compose.yml中端口映射
- 数据库连接失败:检查数据库服务状态和密码配置
- 服务启动超时:增加JVM内存配置(-Xms512m -Xmx1024m)
三、验证与监控:确保系统稳定运行
3.1 功能验证:关键接口测试
通过以下步骤验证系统核心功能:
- 访问前端界面:打开浏览器访问http://localhost,使用默认账号admin/123456登录
- 验证API接口:调用基础接口检查服务可用性
# 获取用户信息
curl -X GET "http://localhost:8080/jeecg-boot/sys/user/getUserById?id=1" -H "token: your_token"
- 测试数据流程:创建测试数据并验证CRUD操作
3.2 性能监控:打造可视化监控面板
利用项目内置的监控大屏模板,实现系统运行状态可视化:
图2:JeecgBoot监控大屏展示系统运行状态与关键指标
核心监控指标配置:
# Prometheus监控指标示例
scrape_configs:
- job_name: 'jeecg-system'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['jeecg-boot-system:8080']
3.3 日志管理:集中式日志收集方案
配置日志收集提高问题排查效率:
# 查看容器日志
docker logs -f --tail=100 jeecg-boot-system
# 配置日志持久化(修改docker-compose.yml)
volumes:
- ./logs:/app/logs
四、进阶优化:从可用到高效
4.1 架构选型对比:Docker Compose vs K8s
根据业务需求选择合适的部署架构:
| 特性 | Docker Compose | Kubernetes | 适用场景 |
|---|---|---|---|
| 部署复杂度 | 简单(单文件配置) | 复杂(多资源清单) | 开发环境vs生产环境 |
| 扩展性 | 有限(手动扩展) | 强大(自动扩缩容) | 小规模vs大规模应用 |
| 高可用 | 基础(依赖外部工具) | 原生支持 | 非关键应用vs核心业务 |
| 学习曲线 | 平缓 | 陡峭 | 快速部署vs长期维护 |
4.2 K8s部署迁移指南
当业务增长需要更高弹性时,可迁移至K8s环境:
- 构建容器镜像
cd jeecg-boot/jeecg-module-system/jeecg-system-start
docker build -t jeecg-system:3.8.3 .
- 创建部署清单(k8s/deployment.yaml)
apiVersion: apps/v1
kind: Deployment
metadata:
name: jeecg-system
spec:
replicas: 3
selector:
matchLabels:
app: jeecg-system
template:
metadata:
labels:
app: jeecg-system
spec:
containers:
- name: jeecg-system
image: jeecg-system:3.8.3
resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "1Gi"
cpu: "1000m"
- 应用部署配置
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml
kubectl apply -f k8s/ingress.yaml
4.3 性能优化:5个实用技巧
-
数据库优化:
- 配置连接池:
spring.datasource.hikari.maximum-pool-size=20 - 开启查询缓存:
mybatis.configuration.cache-enabled=true
- 配置连接池:
-
缓存策略:
- 热点数据Redis缓存:
@Cacheable(value = "userCache", key = "#id") - 接口响应压缩:
server.compression.enabled=true
- 热点数据Redis缓存:
-
JVM调优:
- 设置合适内存:
-Xms1g -Xmx2g -XX:+UseG1GC - 配置GC日志:
-XX:+PrintGCDetails -XX:+PrintGCDateStamps
- 设置合适内存:
-
前端优化:
- 资源压缩与CDN加速
- 路由懒加载:
const Home = () => import('@/views/home')
-
监控告警:
- 设置CPU使用率阈值告警(80%)
- 配置API响应超时告警(500ms)
五、常见问题解决方案
5.1 服务启动失败排查流程
- 检查容器状态:
docker inspect jeecg-boot-system - 查看应用日志:
docker logs jeecg-boot-system | grep ERROR - 验证依赖服务:
docker exec -it jeecg-boot-system ping jeecg-boot-mysql - 检查资源使用:
docker stats
5.2 数据迁移与版本升级
版本升级时确保数据安全迁移:
# 备份数据库
docker exec jeecg-boot-mysql mysqldump -uroot -pjeecg123 jeecg-boot > backup_$(date +%Y%m%d).sql
# 执行升级脚本
docker cp db/upgrade/20230101.sql jeecg-boot-mysql:/tmp/
docker exec jeecg-boot-mysql mysql -uroot -pjeecg123 jeecg-boot < /tmp/20230101.sql
5.3 安全加固建议
-
容器安全:
- 使用非root用户运行容器
- 限制容器CPU/内存资源
- 配置只读文件系统
-
应用安全:
- 修改默认密码:
spring.security.user.password=new_password - 开启HTTPS:配置SSL证书
- API权限控制:使用Shiro/Spring Security
- 修改默认密码:
通过本文介绍的部署方案,开发团队可以根据实际需求选择合适的架构,从快速部署的单体应用到弹性扩展的微服务架构,实现JeecgBoot的高效运维。随着业务增长,还可平滑迁移至K8s环境,结合监控与优化策略,构建稳定可靠的企业级应用系统。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedJavaScript095- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00

