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

  • Schalter MQ Typ

  • Milvus Standalone-Schalter Typ MQ

MQ-Typ für Milvus Standalone wechseln

In diesem Thema wird beschrieben, wie Sie den Message Queue (MQ)-Typ für eine bestehende Milvus-Standalone-Bereitstellung wechseln können. Milvus unterstützt den Online-MQ-Wechsel 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 Standalone-Instanz, die über Docker oder Docker Compose installiert wurde.
  • Die Milvus-Instanz wurde auf die neueste Version aktualisiert, die diese Switch MQ-Funktion unterstützt.

Allgemeiner Arbeitsablauf

Der allgemeine Arbeitsablauf für das Umschalten des MQ-Typs sieht wie folgt aus:

  1. Stellen Sie sicher, dass die Milvus-Instanz ordnungsgemäß ausgeführt wird.
  2. Bestätigen Sie den Quell-MQ-Typ und den Ziel-MQ-Typ.
  3. Konfigurieren Sie die Zugriffseinstellungen der Ziel-MQ in der Milvus-Konfiguration, ohne den Wert mqType zu ändern.
  4. Lösen Sie den Wechsel aus, indem Sie die WAL alter API aufrufen.
  5. Überwachen Sie die Protokolle, um zu überprüfen, ob der Wechsel erfolgreich abgeschlossen wurde.

Vergewissern Sie sich vor dem Wechsel, dass die Ziel-MQ keine Topics mit denselben Namen enthält, wie die von der aktuellen Milvus-Instanz verwendeten. Dies ist besonders wichtig, wenn der Ziel-MQ-Dienst zuvor von einer anderen Milvus-Instanz verwendet wurde, da widersprüchliche Topic-Namen zu unerwartetem Verhalten führen können.

Wechsel von RocksMQ zu Woodpecker (lokale Speicherung)

Dieses Verfahren gilt für Milvus Standalone Docker-Bereitstellungen, die standardmäßig RocksMQ verwenden.

Schritt 1: Überprüfen Sie, ob die Milvus-Instanz läuft

Stellen Sie sicher, dass Ihre Milvus Standalone Docker-Instanz ordnungsgemäß ausgeführt wird. Sie können dies überprüfen, indem Sie eine Testsammlung erstellen, Daten einfügen und eine Abfrage ausführen.

Schritt 2: Konfigurieren Sie Woodpecker mit lokalem Speicher

Aktualisieren Sie die Milvus-Konfiguration, um Woodpecker-Einstellungen hinzuzufügen , ohne den Wert mqType zu ändern. Erstellen oder aktualisieren Sie die Datei user.yaml mit dem folgenden Inhalt:

woodpecker:
  storage:
    type: local

Starten Sie dann die Milvus-Instanz neu, um die Konfiguration zu übernehmen:

bash standalone_embed.sh restart

Schritt 3: Ausführen der MQ-Umschaltung

Führen Sie den folgenden Befehl aus, um die Umstellung auf 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 (standardmäßig localhost für Standalone-Einsätze).

Schritt 4: Überprüfen Sie, ob die Umstellung abgeschlossen ist

Der Umstellungsprozess wird automatisch abgeschlossen. Überwachen Sie die Milvus-Protokolle auf die folgenden Schlüsselmeldungen, um zu bestätigen, dass der Wechsel 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 (rocksmq) 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.

Umstellung von RocksMQ auf Woodpecker (MinIO Storage)

Dieses Verfahren gilt für Milvus Standalone Docker Compose-Bereitstellungen.

Ab Milvus v2.6 deklariert die Standardkonfiguration docker-compose.yaml bereits mqType als Woodpecker. Sofern Sie die Standardkonfiguration nicht geändert oder ein Upgrade von v2.5 durchgeführt haben, ist dieses Verfahren möglicherweise nicht erforderlich.

Schritt 1: Überprüfen Sie, ob die Milvus-Instanz läuft

Stellen Sie sicher, dass Ihre Milvus Standalone Docker Compose Instanz ordnungsgemäß läuft.

Schritt 2: (Optional) Überprüfen der Woodpecker-Konfiguration

In der Standardkonfiguration von Milvus ist der Speichertyp von Woodpecker bereits auf MinIO eingestellt, so dass in den meisten Fällen keine zusätzliche Konfiguration erforderlich ist.

Wenn Sie jedoch zuvor die Woodpecker-Konfiguration angepasst haben, müssen Sie sicherstellen, dass woodpecker.storage.type auf minio eingestellt ist. Erstellen oder aktualisieren Sie die Datei user.yaml mit dem folgenden Inhalt:

woodpecker:
  storage:
    type: minio

Starten Sie dann die Milvus-Instanz neu, um die Konfiguration zu übernehmen:

docker compose down
docker compose up -d

Schritt 3: Ausführen des MQ-Switch

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 (standardmäßig localhost für Standalone-Einsätze).

Schritt 4: Überprüfen Sie, ob die Umstellung abgeschlossen ist

Der Umstellungsprozess wird automatisch abgeschlossen. Überwachen Sie die Milvus-Protokolle auf die folgenden Schlüsselmeldungen, um zu bestätigen, dass der Wechsel 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 (rocksmq) 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.