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

  1. 访问 https://cloud.zilliz.com 注册账号。
  2. 创建 Cluster(选择云厂商、地域、节点规格)。
  3. 获取 Public EndpointAPI 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 中的集成流程

原始文档

Text Splitters
切分片段

Embedding Model
片段 → 向量

Milvus/Zilliz Cloud
存储向量+文本

用户提问

Embedding Model
问题 → 向量

Milvus/Zilliz
向量检索 Top-K

相关片段

拼接 Prompt

LLM 生成答案

返回用户


步骤说明

  1. 数据准备:文档切分 → 向量化。
  2. 存储:将向量与文本存入 Milvus/Zilliz(指定 collection、schema、index)。
  3. 检索:用户问题向量化 → 在 Milvus 中搜索最近邻。
  4. 生成:用检索片段构造 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)

Zilliz Cloud 托管

Client App

Zilliz Cloud Endpoint
HTTPS/gRPC

Cloud Metadata Store

Cloud Object Storage

Cloud Message Bus

Auto Scaling Nodes
Query/Data/Index

监控告警
Dashboard

分布式自托管部署

Client App

Milvus Proxy
负载均衡入口

Query Node
检索计算

Data Node
数据写入/持久化

Index Node
建索引

Metadata Store
etcd

Object Storage
S3/MinIO/GCS

Message Bus
Pulsar/Kafka

本地单机部署

Client App
Python/Java/Go

Milvus Standalone
单节点服务

Metadata Store
etcd/SQLite

Object Storage
MinIO/Local FS

Search Engine
Knowhere 库


架构说明

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 中稳定高效地支撑向量检索。


Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐