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-Version | Unterstützte Pulsar-Version | Standard |
|---|---|---|
| 2.5.x und höher | Pulsar v3 (empfohlen) oder Pulsar v2 | Pulsar v3 (über Helm / Milvus Operator) |
| 2.4.x und früher | Pulsar v2 | Pulsar 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“.