1.9 KiB
1.9 KiB
后端微服务架构
这是一个基于纯 Docker 环境构建的最小化后端骨架,不需要主机依赖。
技术栈
- golang:1.26.1-alpine3.23
- postgres:18.3-alpine3.23
- redis:8.6.2-alpine
- Docker/Docker Compose
- nginx:1.25-alpine
目录结构
./backend/
├── gateway/ # API 网关服务
├── services/ # 微服务
│ └── user-svc/ # 用户服务
├── shared/ # 共享代码和 proto 文件
├── scripts/ # 工具脚本
├── docker-compose.yml # 生产环境 docker compose 文件
├── docker-compose.dev.yml # 开发模式 docker compose 文件
├── Makefile # Docker 命令封装
└── README.md # 本文档
快速开始
前置条件
- Docker
- Docker Compose
启动服务
-
构建并启动服务
# 使用 Makefile make up # 或使用脚本 ./scripts/dev-start.sh -
以开发模式启动(热更新)
make up-dev -
生成 proto 文件
make gen-proto -
运行测试
make test -
停止服务
make down
访问服务
- Nginx: http://localhost:8080
- 网关: http://localhost:8000
- 用户服务: http://localhost:9000
- PostgreSQL: localhost:5432
- Redis: localhost:6379
开发
添加新服务
- 在
services/目录下创建新目录 - 添加
Dockerfile、go.mod和必要的目录结构 - 更新
docker-compose.yml和docker-compose.dev.yml以包含新服务
Proto 文件
- 在
shared/proto/common/目录下添加 proto 文件 - 运行
make gen-proto生成 Go 代码
生产环境
对于生产部署,使用 docker-compose.yml,它会构建优化的镜像,不包含卷挂载。
清理
make clean
这将停止所有服务,移除卷,并清理镜像。