Trocar o tipo de MQ para o Milvus Standalone
Este tópico descreve como mudar o tipo de fila de mensagens (MQ) para uma implantação autônoma do Milvus existente. O Milvus suporta a troca de MQ online sem tempo de inatividade.
Este recurso está pendente de lançamento e está sujeito a alterações. Entre em contato com o suporte do Milvus se quiser experimentar ou tiver alguma dúvida.
Pré-requisitos
- Uma instância Milvus Standalone em execução instalada via Docker ou Docker Compose.
- A instância do Milvus foi atualizada para a versão mais recente que suporta esse recurso do Switch MQ.
Fluxo de trabalho geral
O fluxo de trabalho geral para alternar o tipo de MQ é o seguinte:
- Garantir que a instância do Milvus esteja funcionando corretamente.
- Confirmar o tipo de MQ de origem e o tipo de MQ de destino.
- Configurar as definições de acesso do MQ de destino na configuração do Milvus sem alterar o valor
mqType. - Acionar a troca chamando a API de alteração do WAL.
- Monitorar os logs para verificar se a troca foi concluída com sucesso.
Antes da troca, certifique-se de que o MQ de destino não contém tópicos com os mesmos nomes daqueles usados pela instância atual do Milvus. Isso é especialmente importante se o serviço MQ de destino tiver sido usado anteriormente por outra instância do Milvus, pois nomes de tópicos conflitantes podem levar a um comportamento inesperado.
Mudança do RocksMQ para o Woodpecker (Armazenamento local)
Este procedimento se aplica às implantações do Milvus Standalone Docker que usam o RocksMQ por padrão.
Etapa 1: verificar se a instância do Milvus está em execução
Verifique se a instância do Docker autônomo do Milvus está funcionando corretamente. Você pode verificar isso criando uma coleção de teste, inserindo dados e executando uma consulta.
Etapa 2: Configurar o Woodpecker com armazenamento local
Atualize a configuração do Milvus para adicionar as configurações do Woodpecker sem alterar o valor mqType. Crie ou actualize o ficheiro user.yaml com o seguinte conteúdo:
woodpecker:
storage:
type: local
Em seguida, reinicie a instância do Milvus para aplicar a configuração:
bash standalone_embed.sh restart
Etapa 3: Executar a troca de MQ
Execute o seguinte comando para ativar a mudança para o Woodpecker:
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
Substitua <mixcoord_addr> pelo endereço real do seu serviço MixCoord (por defeito, localhost para implementações autónomas).
Etapa 4: verificar se a troca foi concluída
O processo de troca é concluído automaticamente. Monitore os logs do Milvus em busca das seguintes mensagens-chave para confirmar que a troca foi concluída:
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
Nas mensagens de registo acima, <MQ1> é o tipo de MQ de origem (rocksmq), e <MQ2> é o tipo de MQ de destino (woodpecker).
- A primeira mensagem indica que a troca do WAL da origem para o destino foi concluída.
- A segunda mensagem indica que todos os canais físicos foram trocados.
- A terceira mensagem indica que a configuração do
mq.typefoi atualizada no etcd.
Mudança do RocksMQ para o Woodpecker (armazenamento MinIO)
Este procedimento se aplica às implantações do Milvus Standalone Docker Compose.
A partir do Milvus v2.6, o docker-compose.yaml padrão já declara mqType como Woodpecker. A menos que tenha modificado a configuração padrão ou atualizado da v2.5, este procedimento pode não ser necessário.
Passo 1: Verificar se a instância do Milvus está a funcionar
Verifique se a instância do Milvus Standalone Docker Compose está funcionando corretamente.
Etapa 2: (Opcional) Verificar a configuração do Woodpecker
A configuração padrão do Milvus já define o tipo de armazenamento do Woodpecker como MinIO, portanto, nenhuma configuração adicional é necessária na maioria dos casos.
No entanto, se tiver personalizado anteriormente a configuração do Woodpecker, é necessário garantir que woodpecker.storage.type esteja definido como minio. Crie ou actualize o ficheiro user.yaml com o seguinte conteúdo:
woodpecker:
storage:
type: minio
Em seguida, reinicie a instância do Milvus para aplicar a configuração:
docker compose down
docker compose up -d
Etapa 3: Executar a troca de MQ
Execute o seguinte comando para ativar a mudança para o Woodpecker:
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
Substitua <mixcoord_addr> pelo endereço real do seu serviço MixCoord (por defeito, localhost para implementações autónomas).
Etapa 4: verificar se a troca foi concluída
O processo de troca é concluído automaticamente. Monitore os logs do Milvus em busca das seguintes mensagens-chave para confirmar que a troca foi concluída:
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
Nas mensagens de registo acima, <MQ1> é o tipo de MQ de origem (rocksmq), e <MQ2> é o tipo de MQ de destino (woodpecker).
- A primeira mensagem indica que a troca do WAL da origem para o destino foi concluída.
- A segunda mensagem indica que todos os canais físicos foram trocados.
- A terceira mensagem indica que a configuração do
mq.typefoi actualizada no etcd.