【专属福利】Pig微服务架构的Docker Compose部署指南
前言:微服务部署的痛点与解决方案
你是否曾为微服务架构的复杂部署而头疼?多个服务之间的依赖关系、环境配置、网络通信等问题往往让开发者望而却步。Pig微服务框架基于Spring Cloud 2025和Spring Boot 3.5,提供了完整的RBAC权限管理系统,而Docker Compose正是解决这些部署难题的利器。
通过本文,你将掌握:
- 🚀 Pig微服务架构的完整部署流程
- 📦 Docker Compose一键启动所有服务
- 🔧 各服务模块的配置详解
- 🛠️ 常见问题排查与优化建议
- 📊 服务监控与健康检查
Pig微服务架构概览
Pig采用典型的微服务架构设计,包含以下核心模块:
环境准备与前置要求
系统要求
| 资源类型 | 最低要求 | 推荐配置 |
|---|---|---|
| 内存 | 4GB | 8GB+ |
| CPU | 2核 | 4核+ |
| 磁盘 | 10GB | 20GB+ |
| Docker | 20.10+ | 最新稳定版 |
| Docker Compose | 2.0+ | 最新稳定版 |
必要软件安装
# Ubuntu/Debian
sudo apt update
sudo apt install docker.io docker-compose
# CentOS/RHEL
sudo yum install docker
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装
docker --version
docker-compose --version
Docker Compose部署详解
核心配置文件分析
Pig项目的docker-compose.yml文件定义了完整的服务栈:
version: '3.8'
services:
pig-mysql:
build: ./db
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- "33306:3306"
networks:
- spring_cloud_default
pig-redis:
image: registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis
ports:
- "36379:6379"
networks:
- spring_cloud_default
pig-register:
build: ./pig-register
ports:
- "8848:8848"
- "9848:9848"
environment:
MYSQL_HOST: pig-mysql
REDIS_HOST: pig-redis
networks:
- spring_cloud_default
depends_on:
- pig-mysql
- pig-redis
# 其他服务配置类似...
服务依赖关系表
| 服务名称 | 端口 | 依赖服务 | 主要功能 |
|---|---|---|---|
| pig-mysql | 33306 | - | 主数据库 |
| pig-redis | 36379 | - | 缓存服务 |
| pig-register | 8848,9848 | MySQL, Redis | 服务注册中心 |
| pig-gateway | 9999 | Redis, Nacos | API网关 |
| pig-auth | 3000 | Redis, Nacos | 认证授权 |
| pig-upms | 4000 | MySQL, Redis, Nacos | 用户权限管理 |
| pig-monitor | 5001 | Nacos | 服务监控 |
| pig-codegen | 5002 | MySQL, Redis, Nacos | 代码生成 |
| pig-quartz | 5007 | MySQL, Redis, Nacos | 定时任务 |
完整部署实战
步骤1:克隆项目并准备环境
# 克隆项目
git clone https://gitcode.com/pig-mesh/pig
cd pig
# 检查项目结构
ls -la
步骤2:一键启动所有服务
# 使用Docker Compose启动所有服务
docker-compose up -d
# 查看服务启动状态
docker-compose ps
# 查看实时日志
docker-compose logs -f
步骤3:验证服务健康状态
# 检查Nacos注册中心
curl http://localhost:8848/nacos/
# 检查网关服务
curl http://localhost:9999/
# 查看各服务健康状态
docker-compose exec pig-gateway curl localhost:9999/actuator/health
服务配置详解
数据库初始化
Pig使用自动化的SQL脚本初始化数据库:
-- 示例:用户表结构
CREATE TABLE `sys_user` (
`user_id` bigint NOT NULL COMMENT '用户ID',
`username` varchar(50) NOT NULL COMMENT '用户名',
`password` varchar(100) NOT NULL COMMENT '密码',
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
`avatar` varchar(255) DEFAULT NULL COMMENT '头像',
`dept_id` bigint DEFAULT NULL COMMENT '部门ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`lock_flag` char(1) DEFAULT '0' COMMENT '锁定标志',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
PRIMARY KEY (`user_id`),
UNIQUE KEY `sys_user_username` (`username`)
) ENGINE=InnoDB COMMENT='用户表';
环境变量配置
各服务通过环境变量进行配置:
# 认证服务环境变量
ENV REDIS_HOST=pig-redis
ENV NACOS_HOST=pig-register
ENV TZ=Asia/Shanghai
JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"
常见问题与解决方案
问题1:内存不足导致启动失败
# 解决方案:调整JVM内存参数
# 修改各服务的Dockerfile中的JAVA_OPTS
JAVA_OPTS="-Xms64m -Xmx128m" # 降低内存分配
问题2:服务启动顺序问题
# 解决方案:使用depends_on确保启动顺序
depends_on:
- pig-mysql
- pig-redis
- pig-register
问题3:端口冲突
# 解决方案:修改docker-compose.yml中的端口映射
ports:
- "33307:3306" # 修改外部端口
性能优化建议
资源限制配置
# 在docker-compose.yml中添加资源限制
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.25'
服务监控配置
# 启用健康检查
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/actuator/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
安全最佳实践
1. 修改默认密码
# 修改MySQL root密码
MYSQL_ROOT_PASSWORD=your_secure_password
# 修改Redis访问密码
requirepass your_redis_password
2. 网络隔离
# 使用自定义网络
networks:
pig-internal:
internal: true # 内部网络,不暴露到主机
3. 定期更新镜像
# 定期拉取最新安全更新
docker-compose pull
docker-compose up -d
扩展与定制
添加新服务模块
# 在docker-compose.yml中添加新服务
pig-custom-service:
build: ./pig-custom
environment:
NACOS_HOST: pig-register
REDIS_HOST: pig-redis
ports:
- "8080:8080"
networks:
- spring_cloud_default
depends_on:
- pig-register
- pig-redis
自定义配置覆盖
# 创建自定义环境配置文件
cp application.yml application-custom.yml
# 在Dockerfile中覆盖默认配置
COPY application-custom.yml /app/config/
总结
通过本文的详细指南,你应该已经掌握了Pig微服务框架的Docker Compose部署全流程。这种部署方式具有以下优势:
- ✅ 一键部署:简化复杂的微服务部署流程
- ✅ 环境隔离:每个服务运行在独立的容器中
- ✅ 资源可控:精确控制每个服务的资源分配
- ✅ 快速扩展:轻松添加或移除服务模块
- ✅ 便于维护:统一的配置管理和监控
记住微服务部署的关键成功因素:合理的资源规划、清晰的服务依赖管理、完善的健康监控。Pig框架结合Docker Compose为企业级应用提供了稳定可靠的部署方案。
现在就开始你的Pig微服务之旅吧!如果在部署过程中遇到任何问题,欢迎查阅项目的详细文档或参与社区讨论。
温馨提示:本文基于Pig 3.9版本编写,不同版本可能存在配置差异。建议部署前查看对应版本的官方文档获取最新信息。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



