本章目标
读完本章,你应该能够回答下面几个问题:
internal/types/types.go为什么是理解 Milvus 组件边界的第一入口。- Proxy、RootCoord、DataCoord、QueryCoord v2、DataNode、QueryNode v2 分别负责什么。
- MixCoord 是什么,它和 RootCoord、DataCoord、QueryCoord、StreamingCoord 的关系是什么。
- StreamingCoord、StreamingNode、StreamingClient、WAL backend 如何分工。
- Coordinator 和 Node 的区别是什么。
- 一个用户请求大致会经过哪些组件。
- 后续读源码时,如何判断一个逻辑应该去哪个目录找。
前几章我们已经完成了环境搭建、源码地图、启动流程和配置系统。本章开始正式理解 Milvus 的组件架构。
这一章不会深入某一个 API 的完整实现。它的目标是建立“组件分工表”。后续章节读 Proxy、DDL、写入、查询、索引、Compaction 时,都要反复回到这张表。
1. 先用一句话理解 Milvus 组件架构
Milvus 的服务端组件可以粗略分成三层:
用户入口层 -> Pro