Milvus 部署选项概述
Milvus 是一个高性能、可扩展的向量数据库。它支持各种规模的用例,从在 Jupyter 笔记本中本地运行的演示到处理数百亿向量的大规模 Kubernetes 集群。目前,Milvus 有三种部署选项:Milvus Lite、Milvus Standalone 和 Milvus Distributed。
Milvus Lite
Milvus Lite 是一个 Python 库,可导入到您的应用程序中。作为 Milvus 的轻量级版本,它非常适合在 Jupyter Notebooks 中进行快速原型开发,或在资源有限的智能设备上运行。Milvus Lite 支持与 Milvus 其他部署相同的 API。与 Milvus Lite 交互的客户端代码也能与其他部署模式下的 Milvus 实例协同工作。
要将 Milvus Lite 集成到应用程序中,请运行 pip install pymilvus 进行安装,并使用 MilvusClient("./demo.db") 语句实例化一个带有本地文件的向量数据库,以持久化所有数据。更多详情,请参阅 运行 Milvus Lite。
Milvus Standalone
Milvus Standalone 是单机服务器部署。Milvus Standalone 的所有组件都打包到一个 Docker 镜像 中,部署起来非常方便。如果你有生产工作负载,但又不想使用 Kubernetes,在内存充足的单机上运行 Milvus Standalone 是个不错的选择。默认情况下,Milvus Standalone 使用 Woodpecker (嵌入式)作为其消息队列,因此无需单独运维消息服务。
Milvus Distributed
Milvus Distributed 可以部署在 Kubernetes 集群上。这种部署采用云原生架构,摄取负载和搜索查询分别由独立节点处理,允许关键组件冗余。它具有最高的可扩展性和可用性,并能灵活定制每个组件中分配的资源。Milvus Distributed 是在生产中运行大规模向量搜索系统的企业用户的首选。默认情况下,Milvus Distributed 使用 Woodpecker 作为其消息队列,并作为专用服务与 Milvus 一起部署。
为你的使用场景选择合适的部署方式
部署模式的选择通常取决于应用的开发阶段:
- 用于快速原型开发
如果你想快速构建原型或用于学习,例如 Retrieval Augmented Generation (RAG) 演示、AI chatbot、多模态搜索,可以选择 Milvus Lite 本身,或 Milvus Lite 与 Milvus Standalone 的组合。你可以在 notebook 中使用 Milvus Lite 进行快速原型开发,并探索 RAG 中不同 chunking 策略等多种方法。如果你希望将使用 Milvus Lite 构建的应用部署到小规模生产环境中服务真实用户,或在更大的数据集(例如超过几百万个向量)上验证想法,则适合使用 Milvus Standalone。由于所有 Milvus 部署都提供相同的客户端 API,Milvus Lite 的应用逻辑仍然可以复用。Milvus Lite 中存储的数据也可以通过命令行工具迁移到 Milvus Standalone。
- 小规模生产部署
对于早期生产阶段,如果项目仍在寻找 product-market fit,且敏捷性比可扩展性更重要,Milvus Standalone 是最佳选择。在机器资源充足的情况下,它仍可扩展到 1 亿个向量,同时相比维护 K8s 集群需要少得多的 DevOps 工作。
- 大规模生产部署
当你的业务快速增长,数据规模超过单台服务器的容量时,就该考虑 Milvus Distributed 了。你可以继续使用便捷的 Milvus Standalone 作为 dev 或 staging 环境,同时运维运行 Milvus Distributed 的 K8s 集群。这可以支撑你扩展到数百亿个向量,并且可以根据特定工作负载灵活调整节点规模,例如高读、低频写入,或高写入、低读场景。
- 边缘设备上的本地搜索
如需在边缘设备上搜索私有或敏感数据,你可以直接在设备上部署 Milvus Lite,而无需依赖基于云的服务执行文本或图像搜索。这适用于专有文档搜索、端侧目标检测等场景。
Milvus 部署模式的选择取决于项目的阶段和规模。Milvus 为从快速原型开发到大规模企业部署的各种需求提供灵活而强大的解决方案。
- Milvus Lite 建议用于较小的数据集,规模可达几百万个向量。
- Milvus Standalone 适用于中型数据集,可扩展到 1 亿个向量。
- Milvus Distributed 专为大规模部署而设计,能够处理从 1 亿到数百亿个向量的数据集。
无论采用哪种部署模式,每个 Milvus 实例都依赖消息队列、对象存储和元数据存储,默认分别为 Woodpecker、MinIO 和 etcd。如需了解这些依赖、进行调优或连接外部服务,请参阅 Data Infrastructure。

功能比较
| 功能 | Milvus Lite | Milvus Standalone | Milvus Distributed |
|---|---|---|---|
| SDK / 客户端库 | Python gRPC | Python Go Java Node.js C# RESTful | Python Java Go Node.js C# RESTful |
| 数据类型 | Dense Vector Sparse Vector Binary Vector Boolean Integer Floating Point VarChar Array JSON | Dense Vector Sparse Vector Binary Vector Boolean Integer Floating Point VarChar Array JSON | Dense Vector Sparse Vector Binary Vector Boolean Integer Floating Point VarChar Array JSON |
| 搜索能力 | Vector Search(ANN Search) 元数据过滤 Range Search Scalar Query 按 Primary Key 获取 Entity Hybrid Search | Vector Search(ANN Search) 元数据过滤 Range Search Scalar Query 按 Primary Key 获取 Entity Hybrid Search | Vector Search(ANN Search) 元数据过滤 Range Search Scalar Query 按 Primary Key 获取 Entity Hybrid Search |
| CRUD 操作 | ✔️ | ✔️ | ✔️ |
| 高级数据管理 | N/A | 访问控制 Partition Partition Key | 访问控制 Partition Partition Key 物理 Resource Grouping |
| Consistency Level | Strong | Strong Bounded Staleness Session Eventual | Strong Bounded Staleness Session Eventual |
| 消息队列 | N/A | Woodpecker (embedded) | Woodpecker (service) |