• 关于 Milvus
  • 开始使用
  • 概念
  • 用户指南
  • 数据导入
  • AI 工具
  • 管理指南
  • 工具
  • 集成
  • 教程
  • 常见问题解答
  • API Reference

将 Pulsar 用作 Milvus 消息队列

Apache Pulsar 是 Milvus 支持的消息队列(WAL)后端之一。 在 Milvus 3.x 中,Woodpecker是默认的消息队列;但对于偏好 Pulsar 的用户,Pulsar 仍提供全面支持。Pulsar 主要与 Milvus Distributed(集群)配合使用;独立部署通常使用嵌入式的 Woodpecker 或RocksMQ

版本兼容性

Milvus 版本支持的 Pulsar 版本默认
2.5.x 及更高版本Pulsar v3(推荐)或 Pulsar v2Pulsar v3(通过 Helm / Milvus Operator)
2.4.x 及更早版本Pulsar v2Pulsar v2

自 Milvus 2.5 起,Milvus Helm 图表和 Milvus Operator 默认部署Pulsar v3;Pulsar v2 仍保持兼容。请参阅《将 Pulsar 从 v2 升级至 v3》和《继续使用 Pulsar v2》。

使用 Helm 部署带 Pulsar 的 Milvus 集群

安装

若要部署使用捆绑版 Pulsar(而非 Woodpecker)的 Milvus 集群,请安装启用了流式处理节点的 Helm 图表:

helm install my-release zilliztech/milvus \
  --set image.all.tag=v3.0.0 \
  --set pulsarv3.enabled=true \
  --set woodpecker.enabled=false \
  --set streaming.enabled=true \
  --set indexNode.enabled=false

在 Kubernetes v1.25 及更高版本中,若因捆绑的 Pulsar 子图引发 PodDisruptionBudget(PDB)API 问题,请禁用 Pulsar 的 PDB 策略:

helm install my-release zilliztech/milvus \
  --set pulsar.bookkeeper.pdb.usePolicy=false \
  --set pulsar.broker.pdb.usePolicy=false \
  --set pulsar.proxy.pdb.usePolicy=false \
  --set pulsar.zookeeper.pdb.usePolicy=false

配置

若要将 Milvus 连接到外部Pulsar 服务,请在 `values.yaml ` 覆盖配置中禁用内置的 Pulsar 并启用 `externalPulsar `:

pulsarv3:
  enabled: false
externalPulsar:
  enabled: true
  host: <your_pulsar_host>
  port: 6650
  maxMessageSize: "5242880"  # 5 MB, maximum size of each message
  tenant: public
  namespace: default
helm install my-release zilliztech/milvus -f values.yaml

卸载

helm uninstall my-release

若您使用了内置的 Pulsar 并希望清除其持久化数据,请删除 Pulsar PVC(名称为my-release-pulsarv3-* ):

kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...

使用 Milvus Operator 部署带 Pulsar 的 Milvus 集群

使用 Milvus Operator 时,请在spec.dependencies.pulsar 下配置 Pulsar(仅支持 Milvus 集群)。pulsar 支持externalinCluster

外部 Pulsar

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies:
    pulsar:
      external: true
      endpoints:
      - 192.168.1.1:6650
  components: {}
  config: {}

内部(集群内)Pulsar

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies:
    pulsar:
      inCluster:
        values:
          components:
            autorecovery: false
          zookeeper:
            replicaCount: 1
          bookkeeper:
            replicaCount: 1
          broker:
            replicaCount: 1
            configData:
              autoSkipNonRecoverableData: "true"
              managedLedgerDefaultEnsembleSize: "1"
              managedLedgerDefaultWriteQuorum: "1"
              managedLedgerDefaultAckQuorum: "1"
          proxy:
            replicaCount: 1
  components: {}
  config: {}

应用配置(假设文件名为milvuscluster.yaml ):

kubectl apply -f milvuscluster.yaml

卸载

kubectl delete milvus my-release

注意事项

  • 从 2.5.x 升级到 2.6.x: 消息队列限制:升级到 Milvus v3.0.0 时,必须保留当前的消息队列选择。升级过程中不支持在不同的消息队列系统之间切换。未来版本将支持更改消息队列系统。 如果您正在运行 Pulsar 且希望继续使用,请在升级过程中不要更改消息队列。
  • Pulsar v2 → v3:请参阅《将 Pulsar 从 v2 升级至 v3》;若要继续使用 v2,请参阅《继续使用 Pulsar v2》。

后续步骤

翻译自DeepL

想要更快、更简单、更好用的 Milvus SaaS服务 ?

Zilliz Cloud是基于Milvus的全托管向量数据库,拥有更高性能,更易扩展,以及卓越性价比

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?