• Über Milvus
  • Erste Schritte
  • Begriffe
  • Benutzerhandbuch
  • Datenimport
  • KI-Tools
  • Administrationshandbuch
  • Werkzeuge
  • Integrationen
  • Anleitungen
  • Häufig gestellte Fragen
  • API Reference

Verwenden Sie Pulsar als Milvus-Nachrichtenwarteschlange

Apache Pulsar ist eines der von Milvus unterstützten Backends für Nachrichtenwarteschlangen (WAL). In Milvus 3.x ist Woodpecker die Standard-Nachrichtenwarteschlange; Pulsar wird jedoch weiterhin vollständig unterstützt, falls Nutzer dies bevorzugen. Pulsar wird in erster Linie mit Milvus Distributed (Cluster) verwendet; bei eigenständigen Bereitstellungen kommen in der Regel das eingebettete Woodpecker oder RocksMQ zum Einsatz.

Versionskompatibilität

Milvus-VersionUnterstützte Pulsar-VersionStandard
2.5.x und höherPulsar v3 (empfohlen) oder Pulsar v2Pulsar v3 (über Helm / Milvus Operator)
2.4.x und früherPulsar v2Pulsar v2

Seit Milvus 2.5 stellen das Milvus-Helm-Chart und der Milvus-Operator standardmäßig Pulsar v3 bereit; Pulsar v2 bleibt weiterhin kompatibel. Siehe „Pulsar von v2 auf v3 aktualisieren “ und „Pulsar v2 weiterhin verwenden“.

Stellen Sie einen Milvus-Cluster mit Pulsar mithilfe von Helm bereit

Installation

Um einen Milvus-Cluster bereitzustellen, der das mitgelieferte Pulsar (anstelle von Woodpecker) verwendet, installieren Sie das Helm-Chart mit aktiviertem Streaming-Knoten:

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

Wenn bei Kubernetes v1.25 und höher Probleme mit der PodDisruptionBudget-API durch das mitgelieferte Pulsar-Sub-Chart auftreten, deaktivieren Sie die Pulsar-PDB-Richtlinien:

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

Konfigurieren

Um Milvus mit einem externen Pulsar-Dienst zu verbinden, deaktivieren Sie den mitgelieferten Pulsar und aktivieren Sie „ externalPulsar “ in einem „ values.yaml “-Override:

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

Deinstallieren

helm uninstall my-release

Wenn Sie das mitgelieferte Pulsar verwendet haben und dessen persistierte Daten entfernen möchten, löschen Sie die Pulsar-PVCs (mit dem Namen „ my-release-pulsarv3-* “):

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

Bereitstellung eines Milvus-Clusters mit Pulsar mithilfe des Milvus-Operators

Konfigurieren Sie Pulsar mit dem Milvus Operator unter „ spec.dependencies.pulsar “ (wird nur für Milvus-Cluster unterstützt). „ pulsar “ unterstützt „ external “ und „ inCluster “.

Externer 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: {}

Interner (clusterinterner) 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: {}

Wenden Sie die Konfiguration an (vorausgesetzt, die Datei lautet „ milvuscluster.yaml “):

kubectl apply -f milvuscluster.yaml

Deinstallieren

kubectl delete milvus my-release

Hinweise

  • Upgrade von 2.5.x auf 2.6.x: Einschränkungen bei der Nachrichtenwarteschlange: Beim Upgrade auf Milvus v3.0.0 müssen Sie Ihre aktuelle Auswahl der Nachrichtenwarteschlange beibehalten. Ein Wechsel zwischen verschiedenen Nachrichtenwarteschlangensystemen während des Upgrades wird nicht unterstützt. Die Unterstützung für den Wechsel des Nachrichtenwarteschlangensystems wird in zukünftigen Versionen verfügbar sein. Wenn Sie Pulsar einsetzen und weiterhin nutzen möchten, ändern Sie die Nachrichtenwarteschlange während des Upgrades nicht.
  • Pulsar v2 → v3: Siehe „Upgrade von Pulsar von v2 auf v3“; um bei v2 zu bleiben, siehe „Weiterverwendung von Pulsar v2“.

Was kommt als Nächstes