Passaggio da RocksMQ a Woodpecker

Questa pagina descrive come passare dalla coda di messaggi (MQ) di una distribuzione Milvus Standalone (Docker Compose) da RocksMQ a Woodpecker (backend locale o MinIO) e viceversa. Per il flusso di lavoro generale e i prerequisiti, consultare Passare da una coda di messaggi all'altra.

  • Prerequisito: la funzionalità "Cambio di coda dei messaggi" è disponibile in Milvus 3.0 e versioni successive. Aggiornare l’istanza di Milvus a Milvus 3.0 o versioni successive prima di iniziare: la funzionalità non è disponibile nelle versioni precedenti.
  • Il cambio di coda dei messaggi richiede la distribuzione Docker Compose (che abilita una sorgente di configurazione etcd). La distribuzione Docker a container singolo non supporta il cambio.

Passaggio da RocksMQ a Woodpecker

Passaggio 1: verificare che l’istanza Milvus sia in esecuzione

Verifica che la tua istanza Milvus Standalone Docker Compose sia in esecuzione corretta — ad esempio, creando una raccolta di prova, inserendo dati ed eseguendo una query.

Passaggio 2: configurare l’archiviazione Woodpecker

Aggiungere le impostazioni di Woodpecker alla configurazione di Milvus senza modificare il valore di ` mqType `. Eseguire ` docker exec -it milvus-standalone bash ` per accedere al container, quindi modificare ` /milvus/configs/user.yaml`:

woodpecker:
  storage:
    type: minio   # minio or local

Riavviare l’istanza di Milvus per applicare la configurazione:

docker compose restart

Passaggio 3: Eseguire il passaggio a MQ

Se è la prima volta che si passa a Woodpecker, ignorare questa nota. In caso contrario, ripulire i metadati e i dati residui di Woodpecker prima di effettuare nuovamente il passaggio: i dati residui potrebbero causare comportamenti imprevisti.

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

La porta MixCoord è in genere 9091.

Passaggio 4: Verifica che il passaggio sia stato completato

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

Se il passaggio va a buon fine, viene registrato il messaggio [mqTypeValue=woodpecker].

Passaggio 5: (Facoltativo) Rimuovere i dati di RocksMQ

I dati di RocksMQ si trovano nelle directory volumes/milvus/rdb_data e volumes/milvus/rdb_data_meta_kv definite in docker-compose.yaml. Se prevedi di tornare a RocksMQ in un secondo momento, elimina prima questi file per evitare conflitti.

Passaggio da Woodpecker a RocksMQ

Passaggio 1: Verificare che l’istanza di Milvus sia in esecuzione

Assicurarsi che l’istanza Docker Compose di Milvus Standalone sia in esecuzione corretta.

Passaggio 2: Eseguire il passaggio a MQ

Assicurarsi che l’istanza non contenga dati residui di RocksMQ derivanti da un’esecuzione precedente. Se è la prima volta che si esegue il passaggio a RocksMQ, ignorare questa nota; in caso contrario, eliminare prima i metadati e i dati relativi a RocksMQ.

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

Passaggio 3: Verifica che il passaggio sia stato completato

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

Se il passaggio va a buon fine, viene registrato il messaggio « [mqTypeValue=rocksmq] ».

Passaggio 4: (Facoltativo) Pulizia dei dati di Woodpecker

  • Metadati (etcd): il prefisso della chiave Woodpecker è in genere woodpecker/.... Visualizzarlo con etcdctl get woodpecker --prefix, quindi eliminarlo.
  • Dati di archiviazione: in modalità MinIO, eliminare i dati di log presenti in <rootPath>/wp/... (in genere files/wp/...) nel bucket; in modalità locale, i dati si trovano sul disco locale in volumes/milvus/data/wp/....

Se si prevede di tornare a Woodpecker in un secondo momento, è necessario prima ripulire questi file per evitare conflitti.

Scenari supportati

MQ di origineMQ di destinazioneStatoNote
RocksMQWoodpecker (MinIO/locale)Supportato
Woodpecker (MinIO/locale)RocksMQSupportato
Woodpecker MinIOWoodpecker localeNon supportatoIl passaggio tra le modalità di archiviazione di Woodpecker richiede una gestione aggiuntiva dei metadati, che non è ancora supportata.
Woodpecker localeWoodpecker MinIONon supportatoCome sopra.
RocksMQ / WoodpeckerPulsar / Kafka esternoSupportato ma non raccomandatoMantenere le istanze standalone il più semplici possibile.