这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
控制面与数据面
最终架构的两个面
经过前面几章,文件上传系统已经从简单接口演进为完整平台。最终架构可以拆成控制面和数据面:
控制面:鉴权、配额、上传任务、元数据、签名、审核状态、审计日志
数据面:客户端直传、对象存储、分片合并、CDN 分发、异步扫描
- 控制面由业务服务掌握,因为它需要理解用户、租户、权限和文件状态。
- 数据面交给对象存储、CDN 和异步任务系统,因为它们更适合处理大文件、大带宽和耗时任务。
分层的职责
| 模块 | 属于 | 职责 |
|---|---|---|
| 上传任务 / 分片 | 控制面 | 状态机、进度、过期清理 |
| 对象存储 | 数据面 | 文件本体、容量、备份 |
| 异步扫描 | 数据面 | 病毒、内容审核、转码 |
| CDN | 数据面 | 分发、缓存、加速 |
| 元数据 + 审计 | 控制面 | 业务事实、可追溯 |
为什么这么分
分层的核心价值是职责单一 + 大流量隔离:
- 改权限模型,不动存储。
- 换 CDN 厂商,不动业务逻辑。
- 存储扩容、扫描扩容,各自独立。
- 业务服务不再承载大文件流量,普通 API 不被拖慢。
演进如何走到这一步
基础上传(全部在业务服务)
→ 分片 + 断点续传(控制面出现状态机)
→ 对象存储直传(数据面独立)
→ CDN(数据面进一步外移)
→ 安全审计(治理层贯穿控制面)
每一步都是把「判断」留在控制面、把「流量」推向数据面。
下一节看支撑这两个面的核心数据表。
发现内容有问题?
告诉我们哪里需要改进。
