Skip to content

Commit 52f5cd1

Browse files
committed
doc(service_manager): 添加说明文档
将分散的内部README文件合并为统一文档,并添加详细架构设计和API说明
1 parent 6d88254 commit 52f5cd1

File tree

8 files changed

+183
-10
lines changed

8 files changed

+183
-10
lines changed

docs/service_manager/README.md

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
# Service Manager 服务管理模块
2+
3+
Service Manager 是 ZeroOps 平台的核心服务管理模块,负责微服务的生命周期管理、部署协调和状态监控。
4+
5+
## 架构设计
6+
7+
### 分层架构
8+
9+
```
10+
┌─────────────────┐
11+
│ HTTP API │ ← REST API 接口层
12+
├─────────────────┤
13+
│ Service │ ← 业务逻辑层
14+
├─────────────────┤
15+
│ Database │ ← 数据访问层
16+
├─────────────────┤
17+
│ PostgreSQL │ ← 数据存储层
18+
└─────────────────┘
19+
```
20+
21+
- **API层** (`api/`): 处理HTTP请求和响应,参数验证
22+
- **Service层** (`service/`): 核心业务逻辑,事务管理
23+
- **Database层** (`database/`): 数据库操作,SQL查询
24+
- **Model层** (`model/`): 数据模型和类型定义
25+
26+
## 核心功能
27+
28+
### 1. 服务信息管理
29+
30+
- **服务注册**: 创建和注册新的微服务
31+
- **依赖管理**: 维护服务间的依赖关系图
32+
- **版本管理**: 跟踪服务的多个版本
33+
- **健康监控**: 实时监控服务健康状态
34+
35+
### 2. 部署管理
36+
37+
- **部署协调**: 管理服务的部署任务
38+
- **灰度发布**: 支持渐进式部署策略
39+
- **状态控制**: 暂停、继续、回滚部署
40+
- **实例管理**: 跟踪服务实例的分布
41+
42+
### 3. 监控集成
43+
44+
- **指标收集**: 集成时序数据库(Prometheus格式)
45+
- **状态报告**: 服务运行状态实时上报
46+
- **告警处理**: 异常状态检测和告警
47+
48+
## API接口
49+
50+
### 服务管理接口
51+
52+
| 方法 | 路径 | 描述 |
53+
|------|------|------|
54+
| GET | `/v1/services` | 获取所有服务列表 |
55+
| POST | `/v1/services` | 创建新服务 |
56+
| PUT | `/v1/services/:service` | 更新服务信息 |
57+
| DELETE | `/v1/services/:service` | 删除服务 |
58+
| GET | `/v1/services/:service/activeVersions` | 获取服务详情 |
59+
| GET | `/v1/services/:service/availableVersions` | 获取可用服务版本 |
60+
| GET | `/v1/metrics/:service/:name` | 获取服务监控指标 |
61+
62+
### 部署管理接口
63+
64+
| 方法 | 路径 | 描述 |
65+
|------|------|------|
66+
| POST | `/v1/deployments` | 创建部署任务 |
67+
| GET | `/v1/deployments` | 获取部署任务列表 |
68+
| GET | `/v1/deployments/:deployID` | 获取部署任务详情 |
69+
| POST | `/v1/deployments/:deployID` | 更新部署任务 |
70+
| DELETE | `/v1/deployments/:deployID` | 删除部署任务 |
71+
| POST | `/v1/deployments/:deployID/pause` | 暂停部署 |
72+
| POST | `/v1/deployments/:deployID/continue` | 继续部署 |
73+
| POST | `/v1/deployments/:deployID/rollback` | 回滚部署 |
74+
75+
## 数据模型
76+
77+
### 核心实体
78+
79+
#### Service (服务)
80+
```go
81+
type Service struct {
82+
Name string `json:"name"` // 服务名称(主键)
83+
Deps []string `json:"deps"` // 依赖关系列表
84+
}
85+
```
86+
87+
#### ServiceInstance (服务实例)
88+
```go
89+
type ServiceInstance struct {
90+
ID string `json:"id"` // 实例ID(主键)
91+
Service string `json:"service"` // 关联服务名
92+
Version string `json:"version"` // 服务版本
93+
}
94+
```
95+
96+
#### ServiceState (服务状态)
97+
- 健康状态等级
98+
- 状态报告时间
99+
- 异常信息
100+
101+
#### DeployTask (部署任务)
102+
- 部署ID
103+
- 目标服务和版本
104+
- 部署状态
105+
- 创建和更新时间
106+
107+
### 数据库设计
108+
109+
使用 PostgreSQL 作为主数据库:
110+
111+
- **services**: 服务基础信息表
112+
- **service_instances**: 服务实例表
113+
- **service_versions**: 服务版本表
114+
- **service_states**: 服务状态表
115+
- **deploy_tasks**: 部署任务表
116+
117+
## 使用示例
118+
119+
### 创建服务
120+
121+
```bash
122+
curl -X POST http://localhost:8080/v1/services \
123+
-H "Content-Type: application/json" \
124+
-d '{
125+
"name": "user-service",
126+
"deps": ["database-service", "cache-service"]
127+
}'
128+
```
129+
130+
### 创建部署任务
131+
132+
```bash
133+
curl -X POST http://localhost:8080/v1/deployments \
134+
-H "Content-Type: application/json" \
135+
-d '{
136+
"service": "user-service",
137+
"version": "v1.2.0",
138+
"strategy": "rolling"
139+
}'
140+
```
141+
142+
### 获取服务列表
143+
144+
```bash
145+
curl http://localhost:8080/v1/services
146+
```
147+
148+
响应示例:
149+
```json
150+
{
151+
"items": [
152+
{
153+
"name": "user-service",
154+
"deployState": "deployed",
155+
"health": "normal",
156+
"deps": ["database-service"]
157+
}
158+
],
159+
"relation": {
160+
"user-service": ["database-service"]
161+
}
162+
}
163+
```
164+
165+
## 配置说明
166+
167+
### 数据库配置
168+
```yaml
169+
database:
170+
host: localhost
171+
port: 5432
172+
user: postgres
173+
password: password
174+
dbname: zeroops
175+
sslmode: disable
176+
```
177+
178+
### 服务配置
179+
```yaml
180+
service_manager:
181+
port: 8080
182+
log_level: info
183+
```
File renamed without changes.

internal/client/README.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

internal/middleware/README.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

internal/service_manager/api/README.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

internal/service_manager/database/README.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

internal/service_manager/model/README.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

internal/service_manager/service/README.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)