Files
asset_helper/backend/README.md

91 lines
1.9 KiB
Markdown

# 后端微服务架构
这是一个基于纯 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
### 启动服务
1. **构建并启动服务**
```bash
# 使用 Makefile
make up
# 或使用脚本
./scripts/dev-start.sh
```
2. **以开发模式启动(热更新)**
```bash
make up-dev
```
3. **生成 proto 文件**
```bash
make gen-proto
```
4. **运行测试**
```bash
make test
```
5. **停止服务**
```bash
make down
```
### 访问服务
- Nginx: http://localhost:8080
- 网关: http://localhost:8000
- 用户服务: http://localhost:9000
- PostgreSQL: localhost:5432
- Redis: localhost:6379
## 开发
### 添加新服务
1. 在 `services/` 目录下创建新目录
2. 添加 `Dockerfile`、`go.mod` 和必要的目录结构
3. 更新 `docker-compose.yml` 和 `docker-compose.dev.yml` 以包含新服务
### Proto 文件
- 在 `shared/proto/common/` 目录下添加 proto 文件
- 运行 `make gen-proto` 生成 Go 代码
## 生产环境
对于生产部署,使用 `docker-compose.yml`,它会构建优化的镜像,不包含卷挂载。
## 清理
```bash
make clean
```
这将停止所有服务,移除卷,并清理镜像。