Migrar do Pub/Sub Lite para o Pub/Sub

Este documento fornece informações sobre como migrar seus aplicativos e dados do Pub/Sub Lite para o Pub/Sub.

Para migrar para o Pub/Sub, use o recurso de assinatura de exportação do Pub/Sub Lite. O recurso de assinatura de exportação converte mensagens de um Pub/Sub Lite em uma mensagem do Pub/Sub, usando um tipo de assinatura chamado assinatura de exportação.

Diferenças entre o Pub/Sub Lite e o Pub/Sub

O Pub/Sub e o Pub/Sub Lite são serviços de mensagens escalonáveis horizontalmente, mas cada um tem diferenças importantes no funcionamento. Para entender essas diferenças em detalhes, leia Escolher o Pub/Sub ou o Pub/Sub Lite.

As seções a seguir descrevem algumas das principais diferenças entre cada serviço que são relevantes na migração entre serviços. Isso inclui as seguintes considerações:

  • Localidade e replicação de dados
  • Modos de transferência
  • Paralelismo e ordenação
  • Repetir e limpar
  • Gerenciamento de capacidade e preços

Localidade e replicação de dados

  • Pub/Sub Lite. Os tópicos regionais do Pub/Sub Lite replicam dados para uma zona secundária na mesma região. Os tópicos zonais do Pub/Sub Lite armazenam dados em uma única zona sem replicação.

  • Pub/Sub. O Pub/Sub replica dados em três zonas dentro de uma região.

Ponto de migração principal

É importante entender como cada serviço replica os dados de maneira diferente.

Ao usar o Pub/Sub, você pode garantir que seus dados sejam armazenados nas regiões preferencialmente usando as políticas de armazenamento de mensagens do Pub/Sub.

  • O Pub/Sub não oferece controle sobre as zonas específicas em que as mensagens são armazenadas. Em vez disso, ele sempre replica dados em três zonas dentro de uma região, conforme determinado pela política de armazenamento de mensagens.

  • Se você não especificar uma política de armazenamento de mensagens, o Pub/Sub vai determinar automaticamente onde as mensagens são armazenadas com base na sua política da organização de restrição de localização de recursos. Se você não definir explicitamente uma política da organização, o Pub/Sub vai permitir todas as regiões e selecionar automaticamente uma para armazenar mensagens.

Modos de transferência

Ponto de migração principal

Se você quiser replicar o comportamento do Pub/Sub Lite no Pub/Sub (por exemplo, baixa latência e alta eficiência), implemente seus clientes consumidores usando a API StreamingPull. Como alternativa, é possível implementar sua assinatura do Pub/Sub usando outros modos de entrega disponíveis, como o envio por push.

Paralelismo e ordenação

  • Pub/Sub Lite. O Pub/Sub Lite oferece suporte a paralelismo por partição.

  • Pub/Sub. O Pub/Sub oferece suporte a paralelismo por mensagem.

Ponto de migração principal

O Pub/Sub não é uma solução baseada em partições. As mensagens do Pub/Sub também podem ser processadas simultaneamente, o que significa que a ordem das mensagens não é garantida. Se o aplicativo exigir a ordenação de mensagens, use as chaves de ordenação do Pub/Sub.

Ao usar a assinatura de exportação no Pub/Sub Lite, a chave do Pub/Sub Lite é usada como a chave de ordenação na mensagem do Pub/Sub. Isso garante que as mensagens continuem sendo entregues na ordem.

Para garantir a compatibilidade com as mensagens do Pub/Sub, verifique se as chaves do Pub/Sub Lite contêm apenas caracteres codificados em UTF-8.

  • As chaves do Pub/Sub Lite são armazenadas como bytes.
  • As chaves de ordenação do Pub/Sub são armazenadas como strings.

As chaves de ordenação do Pub/Sub têm uma capacidade máxima de processamento do editor de 1 MBps. A ordem das mensagens no Pub/Sub só é garantida em uma única região. Para receber mensagens ordenadas no Pub/Sub, ative explicitamente a ordenação de mensagens nas configurações da assinatura.

Repetir e limpar

  • Pub/Sub Lite. O Pub/Sub Lite oferece suporte ao recurso de busca sem exigir configuração adicional.

  • Pub/Sub. O Pub/Sub oferece suporte ao recurso de busca, mas requer configuração adicional.

Ponto de migração principal

Para ativar o recurso de busca, o Pub/Sub exige que você configure explicitamente as configurações no tópico e na assinatura.

  • Tópico: é necessário configurar a duração da retenção de mensagens
  • Assinatura: é necessário configurar uma retenção de mensagens confirmadas.

Configurar essas configurações é crucial se você precisar de paridade exata com o Pub/Sub Lite ou se a migração exigir repetição ou exclusão de mensagens. Independentemente dos requisitos específicos, a capacidade de buscar e reprocessar mensagens é uma proteção valiosa durante uma migração em fases. Ele permite o rollback e minimiza a perda de dados se surgirem problemas inesperados.

Gerenciamento de capacidade e preços

  • Pub/Sub Lite. A capacidade do Pub/Sub Lite é provisionada manualmente ao configurar a capacidade de armazenamento e de transferência usando reservas do Pub/Sub Lite.

  • Pub/Sub. O Pub/Sub é totalmente gerenciado e escalonado automaticamente.

Ponto de migração principal

Ao fazer a transição para o Pub/Sub, é possível gerenciar a capacidade e os preços definindo substituições de cota ou solicitando uma mudança de cota para seus recursos do Pub/Sub.

O principal motivo para gerenciar a capacidade do Pub/Sub é aderir a requisitos de custo rigorosos. Se você não tiver limites de custo rígidos, o Pub/Sub poderá gerenciar recursos de maneira eficiente sem muita intervenção. O Pub/Sub é faturado com base no uso. Para informações detalhadas, consulte Preços do Pub/Sub.

Planejar uma migração

Para migrar do Pub/Sub Lite para o Pub/Sub, use o recurso de assinatura de exportação do Pub/Sub Lite. A assinatura de exportação permite migrar seu aplicativo do Pub/Sub Lite em fases. A adoção de uma abordagem em fases permite atualizar, testar e monitorar a migração de forma iterativa, minimizando o risco de erros e tempo de inatividade.

Antes de começar

  • Avalie seu aplicativo do Pub/Sub Lite e mapeie os recursos correspondentes do Pub/Sub de que você precisa.
  • Verifique se o Pub/Sub atende a todos os requisitos funcionais e comerciais.

Fluxo de trabalho de migração por etapas

As etapas a seguir fornecem uma visão geral do fluxo de trabalho de migração de assinaturas de exportação.

  1. Crie os tópicos do Pub/Sub relevantes e uma assinatura para o tópico.
  2. Crie uma assinatura de exportação do Pub/Sub Lite.
  3. Inscreva-se nas assinaturas do Pub/Sub e do Pub/Sub Lite.
  4. Atualize gradualmente os editores para enviar mensagens ao tópico do Pub/Sub em vez do tópico do Pub/Sub Lite.
  5. Verifique se a carga de trabalho migrada está funcionando como esperado.
  6. Desative os editores e assinantes do Pub/Sub Lite.

Fases da migração

As seções a seguir fornecem detalhes sobre cada etapa do fluxo de trabalho de migração por fases.

Criar tópicos e assinaturas do Pub/Sub

Crie um tópico do Pub/Sub correspondente e a assinatura dele. Nesta fase, você configura as configurações de tópicos e assinaturas necessárias, como políticas de armazenamento, confirmação e retenção de mensagens.

Se necessário, estabeleça e configure cotas para evitar o uso excessivo e o faturamento inesperado. O mais importante é que recomendamos configurar um tópico de mensagens inativas do Pub/Sub Lite para capturar todas as mensagens que não forem migradas para o Pub/Sub. Isso permite que você resolva problemas de erros e identifique a causa raiz das falhas de exportação e reenvie mensagens com falhas para o tópico correto, garantindo que não haja perda de dados.

Criar assinaturas de exportação do Pub/Sub Lite

Para cada tópico, crie uma assinatura de exportação do Pub/Sub Lite para exportar mensagens do tópico do Pub/Sub Lite para o tópico correspondente do Pub/Sub. Em vez de definir individualmente a capacidade de throughput para cada assinatura de exportação, use uma reserva do Pub/Sub Lite para gerenciar de forma eficiente o throughput de todas as assinaturas de exportação coletivamente. Ao final dessa fase, seus tópicos do Pub/Sub Lite e do Pub/Sub vão receber as mesmas mensagens a partir do momento em que as assinaturas de exportação foram criadas.

Em seguida, use os tópicos do Pub/Sub para desenvolver e testar incrementalmente seus clientes de assinantes em fases isoladas. Essa abordagem minimiza a interrupção dos seus aplicativos do Pub/Sub Lite.

Assinatura dupla em tópicos do Pub/Sub e do Pub/Sub Lite

Em um ambiente de desenvolvimento, atualize os clientes de assinantes para ler mensagens diretamente dos tópicos do Pub/Sub usando a biblioteca de cliente do Pub/Sub apropriada. Ao contrário do Pub/Sub Lite, o Pub/Sub oferece vários. Ao contrário do Pub/Sub Lite, o Pub/Sub oferece vários modos de entrega (pull e push). Escolha o que melhor se alinha aos requisitos do seu aplicativo.

  • Para emular o mesmo comportamento do Pub/Sub Lite, configure sua instância do Pub/Sub com a API StreamingPull.

  • Em um sistema com vários aplicativos de consumidor, migre gradualmente cada aplicativo um por um. Para cada aplicativo de assinante, execute o assinante do Pub/Sub Lite e o novo assinante do Pub/Sub em paralelo para verificar o comportamento e o desempenho do novo assinante. Monitore de perto os dois assinantes para garantir a consistência do envio de mensagens, tratamento de erros e a funcionalidade geral. Depois que todos os assinantes forem migrados e validados, desative os clientes de assinantes antigos do Pub/Sub Lite.

Atualizar editores

Depois que todos os assinantes consumirem mensagens do Pub/Sub, atualize gradualmente os editores para enviar mensagens diretamente aos tópicos do Pub/Sub. Para fazer isso, atualize os editores para usar as bibliotecas de cliente do Pub/Sub. Isso garante que você possa mudar gradualmente o tráfego do Pub/Sub Lite para o Pub/Sub.

Desative o Pub/Sub Lite

Depois de migrar todos os assinantes e editores para o Pub/Sub, você pode desativar os recursos do Pub/Sub Lite. Isso ajuda a evitar custos desnecessários com infraestrutura ociosa.

A seguir