MQ-Typ für Milvus-Cluster wechseln
In diesem Thema wird beschrieben, wie Sie den Message Queue (MQ)-Typ für eine bestehende Milvus-Cluster-Bereitstellung umschalten. Milvus unterstützt den Online-MQ-Wechsel zwischen Pulsar, Kafka und Woodpecker ohne Ausfallzeit.
Diese Funktion ist noch nicht freigegeben und kann sich noch ändern. Bitte wenden Sie sich an den Milvus-Support, wenn Sie es ausprobieren möchten oder Fragen haben.
Voraussetzungen
- Eine laufende Milvus-Cluster-Instanz, die über Milvus Operator oder Helm installiert wurde.
- Die Milvus-Instanz wurde auf die neueste Version aktualisiert, die diese Switch MQ-Funktion unterstützt.
Umschalten von Pulsar/Kafka auf Woodpecker (MinIO)
Führen Sie die folgenden Schritte aus, um den MQ-Typ von Pulsar oder Kafka zu Woodpecker mit MinIO-Speicher zu wechseln.
Schritt 1: Überprüfen Sie, ob die Milvus-Instanz läuft
Stellen Sie vor der Umstellung sicher, dass Ihre Milvus-Cluster-Instanz ordnungsgemäß läuft. Sie können dies überprüfen, indem Sie eine Testsammlung erstellen, Daten einfügen und eine Abfrage ausführen.
Schritt 2: (Optional) Überprüfen der Woodpecker-Konfiguration
In der Standardkonfiguration von Milvus ist der Woodpecker-Speichertyp bereits auf MinIO eingestellt, so dass in den meisten Fällen keine zusätzliche Konfiguration erforderlich ist.
Wenn Sie die Woodpecker-Konfiguration jedoch zuvor angepasst haben, müssen Sie sicherstellen, dass woodpecker.storage.type auf minio eingestellt ist. Aktualisieren Sie die Milvus-Konfiguration , ohne den Wert mqType zu ändern:
woodpecker:
storage:
type: minio
- Für Helm: Anweisungen zur Aktualisierung der Konfiguration finden Sie unter Konfigurieren von Milvus mit Helm Charts.
- Für Milvus Operator finden Sie Anweisungen zum Aktualisieren der Konfiguration unter Konfigurieren von Milvus mit Milvus Operator.
Schritt 3: Führen Sie den MQ-Wechsel aus
Führen Sie den folgenden Befehl aus, um den Wechsel zu Woodpecker auszulösen:
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
Ersetzen Sie <mixcoord_addr> durch die tatsächliche Adresse Ihres MixCoord-Dienstes.
Schritt 4: Prüfen Sie, ob die Umstellung abgeschlossen ist
Der Umschaltvorgang wird automatisch abgeschlossen. Überwachen Sie die Milvus-Protokolle auf die folgenden Schlüsselmeldungen, um zu bestätigen, dass die Umstellung abgeschlossen ist:
WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd
In den obigen Protokollmeldungen ist <MQ1> der Quell-MQ-Typ (z. B. pulsar oder kafka) und <MQ2> ist der Ziel-MQ-Typ (woodpecker).
- Die erste Meldung zeigt an, dass der WAL-Wechsel von der Quelle zum Ziel abgeschlossen ist.
- Die zweite Meldung zeigt an, dass alle physischen Kanäle umgeschaltet wurden.
- Die dritte Meldung zeigt an, dass die Konfiguration von
mq.typein etcd aktualisiert wurde.
Umschalten von Woodpecker (MinIO) auf Pulsar oder Kafka
Führen Sie die folgenden Schritte aus, um den MQ-Typ von Woodpecker zurück zu Pulsar oder Kafka zu wechseln.
Schritt 1: Überprüfen Sie, ob die Milvus-Instanz läuft
Stellen Sie vor dem Wechsel sicher, dass Ihre Milvus-Cluster-Instanz ordnungsgemäß läuft.
Schritt 2: Konfigurieren Sie die Ziel-MQ
Bevor Sie die Umschaltung auslösen, müssen Sie sicherstellen, dass der Ziel-MQ-Dienst (Pulsar oder Kafka) verfügbar ist und seine Zugriffskonfiguration in die Milvus-Konfiguration übernommen wird.
Die genauen Schritte in diesem Abschnitt hängen davon ab, ob Sie einen internen (gebündelten) oder externen MQ-Dienst verwenden.
Option A: Interner Pulsar/Kafka (gebündelt mit Helm)
Wenn Sie den gebündelten Pulsar oder Kafka verwenden, der von Helm bereitgestellt wird, aktualisieren Sie Ihre Helm-Version, um den Ziel-MQ-Dienst zu aktivieren und Woodpecker zu deaktivieren. Das Flag streaming.enabled=true ist erforderlich, um den Streaming-Knoten zu aktivieren, der eine Voraussetzung für die Funktion "Switch MQ" ist. Zum Beispiel, um zu Pulsar zu wechseln:
helm upgrade -i my-release milvus/milvus \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
-f values.yaml
Überprüfen Sie nach dem Upgrade, ob die Ziel-MQ-Zugangskonfiguration in die Milvus-Konfiguration übertragen wurde. Zum Beispiel für Pulsar:
pulsar:
address: <pulsar-proxy-address>
port: 6650
Option B: Interner Pulsar/Kafka (von Milvus Operator verwaltet)
Wenn Sie Milvus Operator verwenden, aktualisieren Sie die benutzerdefinierte Milvus-Ressource, um die Ziel-MQ-Zugangskonfiguration aufzunehmen. Einzelheiten zur Aktualisierung der Milvus-Konfiguration finden Sie unter Konfigurieren von Milvus mit Milvus Operator.
Option C: Externer Pulsar/Kafka
Wenn Sie einen externen Pulsar- oder Kafka-Dienst verwenden, müssen Sie die mqType nicht ändern. Fügen Sie einfach die externe MQ-Zugangskonfiguration zu Ihrer values.yaml hinzu und starten Sie die Milvus-Instanz neu, um die Konfiguration zu rendern.
Schritt 3: Ausführen der MQ-Umschaltung
Führen Sie den folgenden Befehl aus, um den Wechsel zu Pulsar auszulösen (ersetzen Sie pulsar durch kafka, wenn Sie zu Kafka wechseln):
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "pulsar"}'
Ersetzen Sie <mixcoord_addr> durch die tatsächliche Adresse Ihres MixCoord-Dienstes.
Schritt 4: Überprüfen Sie, ob der Wechsel abgeschlossen ist
Der Umstellungsprozess wird automatisch abgeschlossen. Überwachen Sie die Milvus-Protokolle auf die folgenden Schlüsselmeldungen, um zu bestätigen, dass die Umstellung abgeschlossen ist:
WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd
In den obigen Protokollmeldungen steht <MQ1> für den Quell-MQ-Typ (woodpecker) und <MQ2> für den Ziel-MQ-Typ (z. B. pulsar oder kafka).
- Die erste Meldung zeigt an, dass der WAL-Wechsel von der Quelle zum Ziel abgeschlossen ist.
- Die zweite Meldung zeigt an, dass alle physischen Kanäle umgeschaltet wurden.
- Die dritte Meldung zeigt an, dass die Konfiguration von
mq.typein etcd aktualisiert wurde.