52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
# 后端端口分配规范
|
||
|
||
## 规划原则
|
||
|
||
- **起始端口**:`20000` 起,远离系统端口和常见开发端口(3000、5000、8000、8080 等)
|
||
- **百位分段**:每个服务域独占一个百位段(`20xxx`),单域最多容纳 100 个端口
|
||
- **子段细分**:每段内部再按功能分层,便于快速定位
|
||
|
||
## 全局分配表
|
||
|
||
| 端口段 | 用途 | 说明 |
|
||
|--------|------|------|
|
||
| `20000-20099` | 基础设施 | Nginx 网关、监控、日志、管理后台等 |
|
||
| `20100-20199` | 用户服务 | `user-service`:账号/邮箱的登录、注册、用户管理 |
|
||
| `20200-20999` | 预留扩展 | 未来新增服务域 |
|
||
|
||
## 用户服务段(20100-20199)细分
|
||
|
||
| 子段 | 用途 | 已分配端口 |
|
||
|------|------|-----------|
|
||
| `20100-20109` | 数据层 | `20101` Postgres、`20103` Redis |
|
||
| `20110-20149` | 用户业务服务 | `20110` user-service(合并后单一服务) |
|
||
| `20150-20189` | 预留扩展 | 预留 |
|
||
| `20190-20199` | 预留/调试 | 预留 |
|
||
|
||
### user-service 端口明细
|
||
|
||
| 服务名 | 宿主机端口 | 容器端口 | 说明 |
|
||
|--------|-----------|---------|------|
|
||
| user-postgres | `20101` | `5432` | PostgreSQL |
|
||
| user-redis | `20103` | `6379` | Redis 缓存 |
|
||
| user-service | `20110` | `8080` | 用户域统一服务(含账号/邮箱 登录/注册) |
|
||
|
||
> **历史端口(已回收,请勿复用)**:`20111` `20112` `20113` `20114`
|
||
> 曾分别用于 `user-login-account` / `user-register-account` / `user-login-email` / `user-register-email` 四个独立微服务,现已合并为单一 `user-service:20110`,按 DDD 限界上下文聚合,内部由 axum Router 模块化拆分。
|
||
|
||
## 使用方式
|
||
|
||
1. **新增服务前先查表**:确认目标服务域的百位段是否还有空余子段
|
||
2. **`.env` 覆盖**:`docker-compose.yml` 中端口使用 `${VAR:-default}` 语法,本地冲突时修改 `.env`,不动 compose 文件
|
||
3. **及时更新本文档**:分配新端口后,同步修改上表并提交
|
||
|
||
## 示例 .env
|
||
|
||
```bash
|
||
# 数据层
|
||
USER_POSTGRES_PORT=20101
|
||
USER_REDIS_PORT=20103
|
||
# 用户业务服务(合并后)
|
||
USER_SERVICE_PORT=20110
|
||
```
|