Milvus
Zilliz
Home
  • Leitfaden für die Verwaltung
  • Home
  • Docs
  • Leitfaden für die Verwaltung

  • Schalter MQ Typ

  • Milvus Cluster Schalter MQ Typ

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

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.type in 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.type in etcd aktualisiert wurde.