【专属福利】Pig微服务架构的Docker Compose部署指南

【专属福利】Pig微服务架构的Docker Compose部署指南

【免费下载链接】pig ↥ ↥ ↥ 点击关注更新,基于 Spring Cloud 2024 、Spring Boot 3.4、 OAuth2 的 RBAC 权限管理系统 【免费下载链接】pig 项目地址: https://gitcode.com/pig-mesh/pig

前言:微服务部署的痛点与解决方案

你是否曾为微服务架构的复杂部署而头疼?多个服务之间的依赖关系、环境配置、网络通信等问题往往让开发者望而却步。Pig微服务框架基于Spring Cloud 2025和Spring Boot 3.5,提供了完整的RBAC权限管理系统,而Docker Compose正是解决这些部署难题的利器。

通过本文,你将掌握:

  • 🚀 Pig微服务架构的完整部署流程
  • 📦 Docker Compose一键启动所有服务
  • 🔧 各服务模块的配置详解
  • 🛠️ 常见问题排查与优化建议
  • 📊 服务监控与健康检查

Pig微服务架构概览

Pig采用典型的微服务架构设计,包含以下核心模块:

mermaid

环境准备与前置要求

系统要求

资源类型最低要求推荐配置
内存4GB8GB+
CPU2核4核+
磁盘10GB20GB+
Docker20.10+最新稳定版
Docker Compose2.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-mysql33306-主数据库
pig-redis36379-缓存服务
pig-register8848,9848MySQL, Redis服务注册中心
pig-gateway9999Redis, NacosAPI网关
pig-auth3000Redis, Nacos认证授权
pig-upms4000MySQL, Redis, Nacos用户权限管理
pig-monitor5001Nacos服务监控
pig-codegen5002MySQL, Redis, Nacos代码生成
pig-quartz5007MySQL, 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版本编写,不同版本可能存在配置差异。建议部署前查看对应版本的官方文档获取最新信息。

【免费下载链接】pig ↥ ↥ ↥ 点击关注更新,基于 Spring Cloud 2024 、Spring Boot 3.4、 OAuth2 的 RBAC 权限管理系统 【免费下载链接】pig 项目地址: https://gitcode.com/pig-mesh/pig

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值