Trocar o tipo de MQ para o Cluster Milvus
Este tópico descreve como alternar o tipo de fila de mensagens (MQ) para uma implantação de cluster Milvus existente. O Milvus suporta a troca de MQ online entre Pulsar, Kafka e Woodpecker 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 experimentá-lo ou tiver alguma dúvida.
Pré-requisitos
- Uma instância de cluster Milvus em execução instalada via Milvus Operator ou Helm.
- A instância do Milvus foi atualizada para a versão mais recente que suporta este recurso Switch MQ.
Mudar de Pulsar/Kafka para Woodpecker (MinIO)
Siga estes passos para mudar o tipo de MQ de Pulsar ou Kafka para Woodpecker com armazenamento MinIO.
Etapa 1: verificar se a instância do Milvus está em execução
Antes de mudar, certifique-se de que a instância do cluster do Milvus está a funcionar corretamente. É possível verificar isso criando uma coleção de teste, inserindo dados e executando uma consulta.
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 você tiver personalizado anteriormente a configuração do Woodpecker, deverá garantir que woodpecker.storage.type esteja definido como minio. Atualize a configuração do Milvus sem alterar o valor de mqType:
woodpecker:
storage:
type: minio
- Para o Helm, consulte Configurar o Milvus com Helm Charts para obter instruções sobre como atualizar a configuração.
- Para o Milvus Operator, consulte Configurar o Milvus com o Milvus Operator para obter instruções sobre como atualizar a configuração.
Etapa 3: Executar a troca de MQ
Execute o seguinte comando para acionar 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.
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 (por exemplo, pulsar ou kafka) e <MQ2> é o tipo de MQ de destino (woodpecker).
- A primeira mensagem indica que a troca de 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.
Alternar do Woodpecker (MinIO) para o Pulsar ou o Kafka
Siga estas etapas para alternar o tipo de MQ do Woodpecker de volta para o Pulsar ou Kafka.
Etapa 1: verificar se a instância do Milvus está em execução
Antes de mudar, verifique se a instância do cluster do Milvus está funcionando corretamente.
Etapa 2: configurar o MQ de destino
Antes de acionar a troca, é necessário garantir que o serviço MQ de destino (Pulsar ou Kafka) esteja disponível e que sua configuração de acesso seja renderizada na configuração do Milvus.
Os passos exactos desta secção dependem da utilização de um serviço MQ interno (agrupado) ou externo.
Opção A: Pulsar/Kafka interno (empacotado com o Helm)
Se você estiver usando o Pulsar ou o Kafka empacotado implantado pelo Helm, atualize sua versão do Helm para habilitar o serviço MQ de destino e desabilitar o Woodpecker. O sinalizador streaming.enabled=true é necessário para habilitar o nó de streaming, que é um pré-requisito para o recurso Alternar MQ. Por exemplo, para mudar para o Pulsar:
helm upgrade -i my-release milvus/milvus \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
-f values.yaml
Após a atualização, verifique se a configuração de acesso ao MQ de destino foi renderizada na configuração do Milvus. Por exemplo, para Pulsar:
pulsar:
address: <pulsar-proxy-address>
port: 6650
Opção B: Pulsar/Kafka interno (gerido pelo Milvus Operator)
Se você estiver usando o Milvus Operator, atualize o recurso personalizado do Milvus para incluir a configuração de acesso ao MQ de destino. Consulte Configurar o Milvus com o Milvus Operator para obter detalhes sobre como atualizar a configuração do Milvus.
Opção C: Pulsar/Kafka externo
Se estiver a usar um serviço Pulsar ou Kafka externo, não é necessário alterar o mqType. Basta adicionar a configuração de acesso ao MQ externo ao seu values.yaml e reiniciar a instância do Milvus para renderizar a configuração.
Etapa 3: Executar a troca de MQ
Execute o seguinte comando para ativar a mudança para Pulsar (substitua pulsar por kafka se estiver a mudar para Kafka):
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "pulsar"}'
Substitua <mixcoord_addr> pelo endereço real do seu serviço MixCoord.
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 (woodpecker), e <MQ2> é o tipo de MQ de destino (por exemplo, pulsar ou kafka).
- A primeira mensagem indica que a troca de 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.