首页
/ Pig-Mesh微服务架构的Docker Compose部署指南

Pig-Mesh微服务架构的Docker Compose部署指南

2025-07-07 06:40:34作者:温玫谨Lighthearted

项目概述

Pig-Mesh是一个基于Spring Cloud的微服务架构项目,采用现代化的微服务设计模式构建。本文将通过分析项目的docker-compose.yml配置文件,深入解读其微服务架构设计和容器化部署方案。

核心服务组件

1. 基础设施层服务

MySQL数据库服务 (pig-mysql)

  • 使用自定义构建的MySQL镜像
  • 配置了root用户远程访问权限
  • 端口映射:主机33306映射到容器3306
  • 自动重启策略确保服务高可用

Redis缓存服务 (pig-redis)

  • 使用阿里云镜像仓库提供的Redis镜像
  • 端口映射:主机36379映射到容器6379
  • 配置了专用主机名和自动重启

2. 服务注册与发现中心 (pig-register)

  • 基于Nacos构建的服务注册中心
  • 暴露三个关键端口:
    • 8848:Nacos服务端口
    • 9848:Nacos集群RPC端口
    • 8080:管理控制台端口
  • 依赖MySQL和Redis服务

3. 核心业务服务

API网关服务 (pig-gateway)

  • 端口9999对外提供服务
  • 依赖Redis和Nacos服务
  • 作为系统统一的API入口

认证授权服务 (pig-auth)

  • 提供OAuth2认证功能
  • 依赖Redis缓存和Nacos服务发现
  • 无端口映射,仅内部服务调用

用户权限管理系统 (pig-upms)

  • 用户和权限管理核心服务
  • 依赖MySQL、Redis和Nacos
  • 构建于pig-upms-biz模块

4. 可视化监控与工具服务

监控服务 (pig-monitor)

  • 端口5001提供监控界面
  • 集成Nacos服务发现
  • 提供系统运行状态监控

代码生成服务 (pig-codegen)

  • 自动化代码生成工具
  • 依赖MySQL、Redis和Nacos
  • 提高开发效率

定时任务服务 (pig-quartz)

  • 基于Quartz的分布式任务调度
  • 依赖MySQL持久化任务状态
  • 通过Redis实现分布式锁

网络配置

项目使用自定义的bridge网络spring_cloud_default,所有服务都加入该网络,实现:

  • 服务间通过容器名直接通信
  • 隔离的网络安全环境
  • 优化的内部DNS解析

部署特点分析

  1. 服务依赖关系

    • 所有业务服务都依赖注册中心(pig-register)
    • 多数服务同时依赖MySQL和Redis
    • 网关服务作为唯一外部入口
  2. 构建策略

    • 大部分服务使用本地Dockerfile构建
    • Redis使用公共镜像加速部署
  3. 高可用设计

    • 所有服务配置了restart: always
    • 关键服务配置了专用hostname
  4. 端口规划

    • 外部访问端口统一偏移(3xxxx)
    • 内部服务使用标准端口

最佳实践建议

  1. 生产环境调整

    • 考虑增加资源限制(resources)
    • 添加健康检查配置
    • 实现配置分离(使用.env文件)
  2. 扩展性考虑

    • 可添加日志收集服务
    • 考虑服务多实例部署
    • 添加API文档服务
  3. 安全建议

    • 修改默认数据库密码
    • 限制Redis外部访问
    • 添加网络访问控制

总结

通过这份docker-compose.yml文件,我们可以清晰地看到Pig-Mesh项目的微服务架构全貌。它展示了一个典型的Spring Cloud应用在Docker环境下的部署方案,涵盖了从基础设施到业务服务的完整链条。这种容器化的部署方式不仅便于开发测试,也为生产环境的持续交付奠定了基础。