向量数据库Milvus2.6介绍
一、Milvus 关键能力速览(对接业务)
在进入场景前,先锁定要用到的几个特性:
- 多种向量索引:HNSW(高性能)、DiskANN(大容量低成本)、量化索引(内存压缩)。
- 标量过滤:支持在向量检索时,近乎无损地根据时间、类别、用户ID等过滤。
- 分区(Partition)与分区键:物理隔离海量数据,实现多租户和冷热分层。
- 多向量字段:同一集合支持多个向量字段(如
text_embedding和image_embedding)。 - 稀疏向量支持(v2.4+):同时管理稠密向量和稀疏向量(BM25/SPLADE),实现混合检索。
- RBAC 与数据隔离:数据库级、集合级权限,匹配企业组织架构。
- 存算分离与弹性伸缩:计算节点和存储节点独立扩缩,应对波峰波谷。
二、Milvus2.6 架构

Milvus 三大工作节点:流式 (StreamingNode)、存储 (DataNode)、查询 (QueryNode) ,采用的是流批分离的架构; 流式管实时写入、存储管离线落地建索引、查询管全量检索
流式(StreamingNode): 负责增量实时 DML(insert/delete/upsert),新鲜热数据管家
存储(DataNode): 冷数据后台处理,历史段、索引、合并落地专属节点,不处理实时写入、不对外提供查询
查询(QueryNode): 全量 DQL 执行入口,向量搜索 / 标量查询唯一执行者
|
节点 |
负责数据 |
核心操作 |
对应 SQL 分类 |
|
流式节点 |
实时增量热数据 (Growing) |
写入、攒段、Flush 封存 |
DML (插入删除) |
|
存储节点 |
落地历史冷数据 (Sealed) |
持久化、建索引、合并 |
DDL (索引创建) |
|
查询节点 |
增量 + 全量历史 |
search/query 检索 |
DQL (查询检索) |
三、Milvus2.6 四层架构
第一层:访问层(Proxy)
- 请求统一入口,DDL/DML/DQL/DCL 路由转发、参数校验
第二层:协调层(协调器:Coordinator):
- DDL/DCL/TSO 管理:处理数据定义语言 (DDL) 和数据控制语言 (DCL) 请求,如创建或删除 Collections、分区或索引,以及管理时间戳 Oracle (TSO) 和时间刻度签发。
- 流服务管理:将先写日志(WAL)与流节点绑定,并为流服务提供服务发现功能。
- 查询管理:管理查询节点的拓扑结构和负载平衡,并提供和管理服务查询视图,以指导查询路由。
- 历史数据管理:将压缩和索引建立等离线任务分配给数据节点,并管理数据段和数据视图的拓扑结构。
第三层:计算层
- 流式节点:实时写入、生成 Growing 增量段、落 WAL (Pulsar)
- 存储节点:消费封存段、落地对象存储、构建索引、compaction 合并
- 查询节点:加载增量 + 全量索引数据,向量检索 search / 标量 query
第四层:存储层
- 元数据存储:ETCD,集群元数据、服务注册配置
- WAL存储:Pulsar:WAL 预写日志,保证写入可靠
- 对象存储:MinIO/S3:Segment 原始数据 + 索引文件持久化
备注:
- 在啄木鸟零磁盘模式下,WAL直接使用对象存储和元存储,无需其他部署,减少第三方依赖。
|
应用程序接口类别 |
操作符 |
示例应用程序接口 |
架构流程 |
|
DDL/DCL |
Schema 和访问控制 |
, , 、 |
访问层 → 协调层 |
|
DML |
数据操作 |
, 、 |
访问层 → 流工作节点 |
|
数据查询 |
数据查询 |
, |
访问层 → 批量工作节点(查询节点) |
四、Milvus部署架构
1. 独立运行模式模式 -- Standalone 模式
在一个进程中运行所有组件的 Milvus 单实例,适用于数据集小、工作量小的情况。 此外,在 Standalone 模式下,可以选择更简单的 WAL 实现,如 woodpecker 和 rocksmq,以消除对第三方 WAL 存储依赖的要求。

备注:目前,即使 WAL 存储后端支持集群模式,也无法从 Milvus 独立实例在线升级到 Milvus 集群。
2. 集群模式
Milvus 的一种分布式部署模式,每个组件独立运行,并可进行弹性扩展。这种设置适用于大型数据集和高负荷场景。


浙公网安备 33010602011771号