Uma instância do ApsaraMQ for Kafka implantada em uma única zona corre o risco de ficar indisponível e perder dados durante uma falha no nível da zona. Para evitar isso, use o recurso de integração do ecossistema de conectores do ApsaraMQ for Kafka e faça backup das mensagens em uma instância secundária em outra região. Quando ocorrer uma falha, alterne o tráfego para a instância secundária e restaure o serviço redefinindo os offsets.
Como funciona
Esta arquitetura de recuperação de desastres utiliza duas instâncias do ApsaraMQ for Kafka implantadas em regiões diferentes:
Uma instância primária recebe e atende a todo o tráfego de produção.
Um sink connector faz backup contínuo das mensagens da instância primária para uma instância secundária em outra região.
Quando uma falha no nível da zona interrompe a instância primária, os clientes alternam seus endpoints para a instância secundária.
Os consumidores redefinem seus offsets na instância secundária e retomam o processamento.
Pré-requisitos
Antes de começar, verifique se você tem:
Duas instâncias do ApsaraMQ for Kafka em regiões diferentes
Conectividade de rede entre as duas regiões por meio da Cloud Enterprise Network (CEN)
(Recomendado) Um nome de domínio personalizado para alternância de tráfego baseada em CNAME
Considerações importantes
Implante as instâncias primária e secundária em regiões diferentes para garantir proteção contra falhas no nível da região.
Após um failover, os consumidores redefinem os offsets na instância secundária e podem reprocessar algumas mensagens. Implemente idempotência de mensagens nos consumidores para lidar com consumo duplicado.
Use um registro CNAME para mapear um nome de domínio personalizado ao endpoint da instância primária. Durante uma falha, atualize o destino do CNAME para apontar para a instância secundária. Essa ação alterna o tráfego sem reiniciar as aplicações.
Configure a recuperação de desastres
Etapa 1: Crie um sink connector
Crie um sink connector do ApsaraMQ for Kafka para replicar continuamente as mensagens da instância primária para a instância secundária.
Para obter instruções, consulte Criar sink connectors do ApsaraMQ for Kafka.
Etapa 2: (Opcional) Adicionar um registro CNAME
Para permitir alternância rápida de tráfego sem reiniciar as aplicações, adicione um registro CNAME que mapeie o nome de domínio personalizado para o nome de domínio da instância primária.
Para obter instruções, consulte Registro CNAME.
Etapa 3: Configure o endpoint do cliente
Escolha uma das abordagens a seguir, dependendo da configuração de um registro CNAME:
Modo CNAME (recomendado)
Aponte o cliente para o nome de domínio personalizado com o registro CNAME.
Durante uma falha, atualize o destino do CNAME para o nome de domínio da instância secundária. O tráfego é alternado automaticamente, sem reiniciar as aplicações.
Modo padrão
Aponte o cliente diretamente para o endpoint da instância primária.
Durante uma falha, atualize a configuração do cliente para o endpoint da instância secundária e reinicie a aplicação.
Para acessar instâncias do ApsaraMQ for Kafka em diferentes regiões, conecte as Virtual Private Clouds (VPCs) dessas regiões por meio da Cloud Enterprise Network (CEN). Para mais detalhes, consulte Conectar VPCs em diferentes regiões.