Cambio del tipo di MQ per Milvus Standalone
Questo argomento descrive come cambiare il tipo di coda di messaggi (MQ) per una distribuzione Milvus standalone esistente. Milvus supporta il cambio di MQ online senza tempi di inattività.
Questa funzione è in attesa di rilascio ed è soggetta a modifiche. Contattate il supporto Milvus se volete provarla o se avete domande.
Prerequisiti
- Un'istanza Milvus Standalone in esecuzione, installata tramite Docker o Docker Compose.
- L'istanza Milvus è stata aggiornata all'ultima versione che supporta questa funzione di Switch MQ.
Flusso di lavoro generale
Il flusso di lavoro generale per cambiare il tipo di MQ è il seguente:
- Assicurarsi che l'istanza Milvus funzioni correttamente.
- Confermare il tipo di MQ di origine e il tipo di MQ di destinazione.
- Configurare le impostazioni di accesso dell'MQ di destinazione nella configurazione di Milvus senza modificare il valore
mqType. - Attivare il passaggio chiamando l'API WAL alter.
- Monitorare i registri per verificare che il passaggio sia stato completato correttamente.
Prima di effettuare il passaggio, assicurarsi che l'MQ di destinazione non contenga argomenti con gli stessi nomi di quelli utilizzati dall'istanza Milvus corrente. Questo è particolarmente importante se il servizio MQ di destinazione è stato usato in precedenza da un'altra istanza Milvus, in quanto i nomi degli argomenti in conflitto possono causare un comportamento inaspettato.
Passare da RocksMQ a Woodpecker (archiviazione locale)
Questa procedura si applica alle distribuzioni Milvus Standalone Docker che utilizzano RocksMQ per impostazione predefinita.
Passo 1: Verificare che l'istanza Milvus sia in esecuzione
Assicuratevi che la vostra istanza Milvus Standalone Docker funzioni correttamente. Si può verificare creando una collezione di prova, inserendo i dati ed eseguendo una query.
Passo 2: Configurare Woodpecker con lo storage locale
Aggiornare la configurazione di Milvus per aggiungere le impostazioni di Woodpecker senza modificare il valore mqType. Creare o aggiornare il file user.yaml con il seguente contenuto:
woodpecker:
storage:
type: local
Quindi riavviare l'istanza Milvus per applicare la configurazione:
bash standalone_embed.sh restart
Passo 3: Eseguire lo switch MQ
Eseguite il seguente comando per attivare il passaggio a Woodpecker:
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
Sostituite <mixcoord_addr> con l'indirizzo effettivo del vostro servizio MixCoord (per impostazione predefinita, localhost per le implementazioni standalone).
Passo 4: Verificare il completamento del passaggio
Il processo di passaggio si completa automaticamente. Monitorare i log di Milvus per i seguenti messaggi chiave per confermare il completamento dello switch:
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
Nei messaggi di log sopra riportati, <MQ1> è il tipo di MQ di origine (rocksmq) e <MQ2> è il tipo di MQ di destinazione (woodpecker).
- Il primo messaggio indica che il passaggio del WAL dall'origine alla destinazione è stato completato.
- Il secondo messaggio indica che tutti i canali fisici sono stati scambiati.
- Il terzo messaggio indica che la configurazione di
mq.typeè stata aggiornata in etcd.
Passaggio da RocksMQ a Woodpecker (MinIO Storage)
Questa procedura si applica alle distribuzioni Milvus Standalone Docker Compose.
A partire da Milvus v2.6, la configurazione predefinita docker-compose.yaml dichiara già mqType come Woodpecker. A meno che non si sia modificata la configurazione predefinita o non si sia effettuato l'aggiornamento dalla v2.5, questa procedura potrebbe non essere necessaria.
Passo 1: Verificare che l'istanza Milvus sia in esecuzione
Assicuratevi che l'istanza di Milvus Standalone Docker Compose funzioni correttamente.
Passo 2: (facoltativo) Verificare la configurazione di Woodpecker
La configurazione predefinita di Milvus imposta già il tipo di storage di Woodpecker su MinIO, quindi nella maggior parte dei casi non è necessaria alcuna configurazione aggiuntiva.
Tuttavia, se la configurazione di Woodpecker è stata precedentemente personalizzata, è necessario assicurarsi che woodpecker.storage.type sia impostato su minio. Creare o aggiornare il file user.yaml con il seguente contenuto:
woodpecker:
storage:
type: minio
Quindi riavviare l'istanza Milvus per applicare la configurazione:
docker compose down
docker compose up -d
Passo 3: Eseguire lo switch MQ
Eseguire il seguente comando per attivare il passaggio a Woodpecker:
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
Sostituire <mixcoord_addr> con l'indirizzo effettivo del servizio MixCoord (per impostazione predefinita, localhost per le implementazioni standalone).
Passo 4: Verificare il completamento del passaggio
Il processo di passaggio si completa automaticamente. Monitorare i log di Milvus per i seguenti messaggi chiave per confermare il completamento dello switch:
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
Nei messaggi di log sopra riportati, <MQ1> è il tipo di MQ di origine (rocksmq) e <MQ2> è il tipo di MQ di destinazione (woodpecker).
- Il primo messaggio indica che il passaggio del WAL dall'origine alla destinazione è stato completato.
- Il secondo messaggio indica che tutti i canali fisici sono stati scambiati.
- Il terzo messaggio indica che la configurazione di
mq.typeè stata aggiornata in etcd.