Alternar entre o RocksMQ e o Woodpecker
Esta página descreve como alternar a fila de mensagens (MQ) de uma implementação do Milvus Standalone (Docker Compose) entre o RocksMQ e o Woodpecker (backend local ou MinIO), em ambos os sentidos. Para conhecer o fluxo de trabalho geral e os pré-requisitos, consulte Alternar fila de mensagens.
- Pré-requisito: A funcionalidade «Alternar MQ» está disponível no Milvus 3.0 e versões posteriores. Atualize a sua instância do Milvus para o Milvus 3.0 ou posterior antes de começar — a funcionalidade não está disponível em versões anteriores.
- A troca de MQ requer a implementação do Docker Compose (que permite uma fonte de configuração etcd). A implementação do Docker com um único contentor não suporta a troca.
Mudar do RocksMQ para o Woodpecker
Passo 1: Verifique se a instância do Milvus está a funcionar
Verifique se a sua instância do Milvus Standalone Docker Compose está a funcionar corretamente — por exemplo, criando uma coleção de teste, inserindo dados e executando uma consulta.
Passo 2: Configurar o armazenamento do Woodpecker
Adicione as definições do Woodpecker à configuração do Milvus sem alterar o valor de « mqType ». Execute « docker exec -it milvus-standalone bash » para aceder ao contentor e, em seguida, edite « /milvus/configs/user.yaml »:
woodpecker:
storage:
type: minio # minio or local
Reinicie a instância do Milvus para aplicar a configuração:
docker compose restart
Passo 3: Executar a mudança para o MQ
Se for a primeira vez que muda para o Woodpecker, ignore esta nota. Caso contrário, elimine os metadados e dados residuais do Woodpecker antes de mudar novamente — os dados residuais podem causar um comportamento inesperado.
curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
A porta do MixCoord é normalmente 9091.
Passo 4: Verifique se a mudança foi concluída
docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"
Uma mudança bem-sucedida regista [mqTypeValue=woodpecker].
Passo 5: (Opcional) Limpar os dados do RocksMQ
Os dados do RocksMQ encontram-se nos diretórios volumes/milvus/rdb_data e volumes/milvus/rdb_data_meta_kv, definidos em docker-compose.yaml. Se pretender voltar a utilizar o RocksMQ mais tarde, elimine primeiro estes ficheiros para evitar conflitos.
Mudar do Woodpecker para o RocksMQ
Passo 1: Verifique se a instância do Milvus está a funcionar
Certifique-se de que a sua instância do Milvus Standalone Docker Compose está a funcionar corretamente.
Passo 2: Executar a mudança para o MQ
Certifique-se de que a instância não contém dados residuais do RocksMQ de uma execução anterior. Se esta for a primeira vez que muda para o RocksMQ, ignore esta nota; caso contrário, limpe primeiro os metadados e dados relacionados com o RocksMQ.
curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "rocksmq"}'
Passo 3: Verifique se a mudança foi concluída
docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"
Uma transição bem-sucedida regista a mensagem « [mqTypeValue=rocksmq] ».
Passo 4: (Opcional) Limpar os dados do Woodpecker
- Metadados (etcd): o prefixo da chave do Woodpecker é normalmente
woodpecker/.... Visualize-o cometcdctl get woodpecker --prefixe, em seguida, elimine-o. - Dados de armazenamento: no modo MinIO, elimine os dados de registo em
<rootPath>/wp/...(normalmentefiles/wp/...) no bucket; no modo local, os dados encontram-se no disco local emvolumes/milvus/data/wp/....
Se pretender voltar a utilizar o Woodpecker mais tarde, elimine primeiro estes ficheiros para evitar conflitos.
Cenários suportados
| MQ de origem | MQ de destino | Estado | Notas |
|---|---|---|---|
| RocksMQ | Woodpecker (MinIO/local) | Compatível | |
| Woodpecker (MinIO/local) | RocksMQ | Compatível | |
| Woodpecker MinIO | Woodpecker local | Não suportado | A alternância entre os modos de armazenamento do Woodpecker requer o tratamento de metadados adicionais, o que ainda não é suportado. |
| Woodpecker local | Woodpecker MinIO | Não suportado | Tal como acima. |
| RocksMQ / Woodpecker | Pulsar / Kafka externo | Compatível, mas não recomendado | Mantenha as instâncias autónomas o mais simples possível. |