Milvus / Zilliz Cloud 的部署与使用
·
Milvus / Zilliz Cloud 的部署与使用,包括本地部署 Milvus、Zilliz Cloud 的托管服务,以及在 Naive RAG 中的集成方法,并配上流程图,方便你快速上手。
1. Milvus 与 Zilliz Cloud 简介
| 特性 | Milvus | Zilliz Cloud |
|---|---|---|
| 类型 | 开源向量数据库 | 基于 Milvus 的 fully managed 云服务 |
| 开发方 | Milvus 社区 / Zilliz 公司 | Zilliz |
| 部署方式 | 本地 / Docker / Kubernetes | 全托管(AWS、GCP、Azure) |
| 特点 | 高性能、可扩展、支持多种索引 | 免运维、弹性伸缩、监控告警 |
| 适用场景 | 自托管、内网、定制化需求 | 商业项目、快速上线、无运维负担 |
2. Milvus 本地部署
2.1 Docker Compose 快速启动(单机版)
# 1. 下载 docker-compose.yml
wget https://github.com/milvus-io/milvus/releases/download/v2.3.0/milvus-standalone-docker-compose.yml -O docker-compose.yml
# 2. 启动
docker-compose up -d
默认访问:
- Metric:
http://localhost:9091 - Web UI (Attu):
http://localhost:3000(需单独启动 Attu)
2.2 使用 Python 客户端连接
from pymilvus import connections, Collection
connections.connect(host='localhost', port='19530')
# 创建 collection(示例)
from pymilvus import FieldSchema, CollectionSchema, DataType, Collection
fields = [
FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=384),
FieldSchema(name="text", dtype=DataType.VARCHAR, max_length=65535)
]
schema = CollectionSchema(fields, description="RAG docs")
collection = Collection(name="rag_docs", schema=schema)
# 创建索引
index_params = {"index_type": "IVF_FLAT", "metric_type": "L2", "params": {"nlist": 128}}
collection.create_index(field_name="embedding", index_params=index_params)
# 加载到内存
collection.load()
3. Zilliz Cloud 使用
3.1 注册与创建 Cluster
- 访问 https://cloud.zilliz.com 注册账号。
- 创建 Cluster(选择云厂商、地域、节点规格)。
- 获取 Public Endpoint 与 API Key。
3.2 Python 客户端连接
from pymilvus import connections
connections.connect(
alias="default",
uri="https://your-cluster-endpoint",
token="your-api-key"
)
# 后续操作与 Milvus 本地几乎相同
3.3 优势
- 无需关心硬件、扩缩容、备份。
- 提供监控 Dashboard、性能分析。
- 支持多租户、VPC 隔离。
4. 在 Naive RAG 中的集成流程
步骤说明
- 数据准备:文档切分 → 向量化。
- 存储:将向量与文本存入 Milvus/Zilliz(指定 collection、schema、index)。
- 检索:用户问题向量化 → 在 Milvus 中搜索最近邻。
- 生成:用检索片段构造 Prompt → LLM 生成答案。
5. Milvus 索引与检索参数建议
| 索引类型 | 特点 | 适用场景 |
|---|---|---|
| FLAT | 精确搜索 | 小数据、调试 |
| IVF_FLAT | 倒排文件,较快 | 中等规模 |
| HNSW | 图索引,速度快精度高 | 大规模、在线服务 |
| DISKANN | 磁盘优化,省内存 | 超大规模 |
示例索引参数(HNSW):
index_params = {
"index_type": "HNSW",
"metric_type": "COSINE",
"params": {"M": 16, "efConstruction": 200}
}
collection.create_index("embedding", index_params)
6. 优势与注意事项
| 优势 | 注意事项 |
|---|---|
| 高性能、可扩展 | 本地部署需运维 |
| 支持多种索引与距离度量 | 索引参数需调优 |
| Zilliz Cloud 免运维 | 云服务有成本 |
| 与 LangChain、LlamaIndex 集成良好 | 需合理设计 schema 与分区 |
7. 与 ChromaDB/FAISS 对比
| 特性 | Milvus/Zilliz | ChromaDB | FAISS |
|---|---|---|---|
| 分布式 | ✅ | ❌(轻量单机) | ❌(需自行扩展) |
| 云托管 | ✅ Zilliz Cloud | ❌ | ❌ |
| 易用性 | 中等 | 很高 | 高(代码级) |
| 适用规模 | 中小 → 超大规模 | 小规模 | 中小规模 |
✅ 一句话总结:
Milvus 是高性能开源向量数据库,适合本地或自建集群部署;Zilliz Cloud 是其全托管云服务,免运维、弹性伸缩。二者均可在 Naive RAG 中作为 Vector Store,提供高效向量检索,支撑大规模语义搜索与问答系统。
Milvus / Zilliz Cloud 部署架构图,对比 本地单机、分布式自托管、Zilliz Cloud 托管 三种典型部署方式,让你直观理解它们的组件构成与适用场景。
Milvus / Zilliz Cloud 部署架构图(Mermaid)
架构说明
1. 本地单机部署(Milvus Standalone)
- 适用场景:开发测试、小规模 PoC、内网离线环境。
- 组件:
- Milvus Standalone:单进程服务,集成查询、数据、索引功能。
- Metadata Store:etcd(默认)或 SQLite,存储元数据。
- Object Storage:MinIO 或本地文件系统,存向量数据与索引文件。
- Search Engine:Knowhere(C++ 向量搜索库)。
- 优点:部署简单(Docker Compose 一键启动),资源占用低。
- 缺点:不支持高可用与水平扩展。
2. 分布式自托管部署(Milvus Cluster)
- 适用场景:生产环境、大规模数据(千万级以上向量)、需要高可用。
- 组件:
- Proxy:统一入口,路由请求到各节点。
- Query Node:执行向量检索。
- Data Node:处理数据写入、持久化。
- Index Node:后台构建索引。
- Metadata Store:etcd,存储集群元数据。
- Object Storage:S3、MinIO、GCS 等,存海量向量与索引。
- Message Bus:Pulsar 或 Kafka,解耦节点通信。
- 优点:高可用、可水平扩展、支持 PB 级数据。
- 缺点:部署运维复杂,需 Kubernetes 或物理机集群。
3. Zilliz Cloud 托管
- 适用场景:商业项目、快速上线、无运维团队、弹性伸缩需求。
- 组件:
- Cloud Endpoint:HTTPS/gRPC 接入点,客户端直连。
- Auto Scaling Nodes:自动扩缩容的 Query/Data/Index 节点。
- Cloud Metadata Store / Object Storage / Message Bus:全托管基础设施。
- 监控告警 Dashboard:可视化性能、容量、健康状态。
- 优点:免运维、弹性伸缩、高可用、安全可靠。
- 缺点:按需付费,有运营成本。
三者对比
| 特性 | Local Standalone | Distributed Self-Hosted | Zilliz Cloud |
|---|---|---|---|
| 部署难度 | 低(Docker) | 高(K8s/集群) | 极低(控制台) |
| 扩展性 | 无 | 水平扩展 | 自动弹性伸缩 |
| 高可用 | 否 | 是 | 是 |
| 运维负担 | 自己承担 | 自己承担 | 零 |
| 成本 | 硬件/云主机 | 硬件/云主机+运维 | 按使用付费 |
| 适用规模 | 小 | 中–大 | 小–超大 |
✅ 一句话总结:
这张图展示了 Milvus 本地单机、分布式自托管 与 Zilliz Cloud 托管 三种部署架构,帮助你根据数据规模、运维能力与预算选择合适的向量数据库方案,并在 Naive RAG 中稳定高效地支撑向量检索。
更多推荐

所有评论(0)