Wechsel zwischen RocksMQ und Woodpecker

Auf dieser Seite wird beschrieben, wie Sie die Nachrichtenwarteschlange (MQ) einer Milvus-Standalone-Bereitstellung (Docker Compose) in beide Richtungen zwischen RocksMQ und Woodpecker (lokales oder MinIO-Backend) wechseln können. Informationen zum allgemeinen Arbeitsablauf und zu den Voraussetzungen finden Sie unter „Nachrichtenwarteschlange wechseln“.

  • Voraussetzung: Die Funktion „MQ wechseln“ ist ab Milvus 3.0 verfügbar. Aktualisieren Sie Ihre Milvus-Instanz auf Milvus 3.0 oder höher, bevor Sie beginnen – die Funktion ist in früheren Versionen nicht verfügbar.
  • Für den MQ-Wechsel ist die Docker -Compose -Bereitstellung erforderlich (die eine etcd-Konfigurationsquelle ermöglicht). Die Docker-Bereitstellung mit einem einzigen Container unterstützt den Wechsel nicht.

Wechsel von RocksMQ zu Woodpecker

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

Stellen Sie sicher, dass Ihre Milvus Standalone Docker Compose-Instanz ordnungsgemäß läuft – beispielsweise, indem Sie eine Testkollektion erstellen, Daten einfügen und eine Abfrage ausführen.

Schritt 2: Woodpecker-Speicher konfigurieren

Fügen Sie die Woodpecker-Einstellungen zur Milvus-Konfiguration hinzu, ohne den Wert „ mqType “ zu ändern. Führen Sie „ docker exec -it milvus-standalone bash “ aus, um den Container zu betreten, und bearbeiten Sie anschließend die Datei „ /milvus/configs/user.yaml “:

woodpecker:
  storage:
    type: minio   # minio or local

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

docker compose restart

Schritt 3: MQ-Wechsel durchführen

Wenn Sie zum ersten Mal zu Woodpecker wechseln, überspringen Sie diesen Hinweis. Andernfalls bereinigen Sie vor dem erneuten Wechsel verbleibende Woodpecker-Metadaten und -Daten – verbleibende Daten können zu unerwartetem Verhalten führen.

curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "woodpecker"}'

Der MixCoord-Port lautet in der Regel 9091.

Schritt 4: Überprüfen Sie, ob der Wechsel abgeschlossen ist

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

Bei einem erfolgreichen Wechsel wird [mqTypeValue=woodpecker] protokolliert.

Schritt 5: (Optional) RocksMQ-Daten bereinigen

RocksMQ-Daten befinden sich in den Verzeichnissen „ volumes/milvus/rdb_data “ und „ volumes/milvus/rdb_data_meta_kv “, die unter docker-compose.yaml definiert sind. Wenn Sie später wieder zu RocksMQ zurückwechseln möchten, löschen Sie diese Dateien zunächst, um Konflikte zu vermeiden.

Wechsel von Woodpecker zu RocksMQ

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: Führen Sie den MQ-Wechsel durch

Stellen Sie sicher, dass die Instanz keine verbleibenden RocksMQ-Daten aus einem früheren Lauf enthält. Wenn Sie zum ersten Mal zu RocksMQ wechseln, überspringen Sie diesen Hinweis; andernfalls bereinigen Sie zunächst die zugehörigen RocksMQ-Metadaten und -Daten.

curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "rocksmq"}'

Schritt 3: Überprüfen Sie, ob der Wechsel abgeschlossen ist

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

Bei einer erfolgreichen Umstellung wird folgende Meldung protokolliert: „ [mqTypeValue=rocksmq] “.

Schritt 4: (Optional) Woodpecker-Daten bereinigen

  • Metadaten (etcd): Das Schlüsselpräfix für Woodpecker lautet in der Regel woodpecker/.... Rufen Sie es mit dem Befehl etcdctl get woodpecker --prefix ab und löschen Sie es anschließend.
  • Speicherdaten: Im MinIO-Modus löschen Sie die Protokolldaten unter „ <rootPath>/wp/... “ (in der Regel „ files/wp/... “) im Bucket; im lokalen Modus befinden sich die Daten auf der lokalen Festplatte unter „ volumes/milvus/data/wp/... “.

Wenn Sie später wieder zu Woodpecker wechseln möchten, löschen Sie diese Dateien zunächst, um Konflikte zu vermeiden.

Unterstützte Szenarien

Quell-MQZiel-MQStatusHinweise
RocksMQWoodpecker (MinIO/lokal)Unterstützt
Woodpecker (MinIO/lokal)RocksMQUnterstützt
Woodpecker MinIOWoodpecker lokalNicht unterstütztDas Umschalten zwischen den Woodpecker-Speichermodi erfordert eine zusätzliche Metadatenverarbeitung, die derzeit noch nicht unterstützt wird.
Woodpecker lokalWoodpecker MinIONicht unterstütztWie oben.
RocksMQ / WoodpeckerExterner Pulsar / KafkaUnterstützt, aber nicht empfohlenHalten Sie eigenständige Instanzen so einfach wie möglich.