feat: 初始化后端微服务架构骨架
This commit is contained in:
85
backend/README.md
Normal file
85
backend/README.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# 后端微服务架构
|
||||
|
||||
这是一个基于纯 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 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
|
||||
```
|
||||
|
||||
这将停止所有服务,移除卷,并清理镜像。
|
||||
Reference in New Issue
Block a user