O ApsaraMQ for Kafka permanece disponível durante a atualização dos brokers. O processo executa uma reinicialização em cascata: os brokers reiniciam um por vez enquanto o cluster continua a atender ao tráfego. Todo o procedimento leva entre 5 e 15 minutos.
Embora o serviço não sofra interrupção, a reinicialização em cascata causa efeitos temporários que podem afetar suas aplicações. Esses efeitos se resolvem automaticamente à medida que a atualização é concluída. Analise os impactos e as etapas de preparação a seguir antes de iniciar a atualização.
Impactos temporários durante a atualização
Ordenação de mensagens
Mensagens consumidas nos 5 minutos posteriores à reinicialização de cada broker podem chegar fora de ordem em partições específicas. Isso ocorre porque a liderança das partições é transferida entre os brokers durante a reinicialização em cascata.
Instâncias Serverless do ApsaraMQ for Kafka e do ApsaraMQ for Confluent cumprem integralmente a semântica do Apache Kafka durante atualizações de versão e não são afetadas por esse problema.
Desconexões de clientes
Clientes conectados a um broker em reinicialização podem sofrer desconexão temporária. Caso sua biblioteca de cliente ofereça suporte a reconexão automática, outro broker assume e a conexão é retomada sem intervenção manual.
Distribuição desigual de tráfego
O tráfego de mensagens pode ficar distribuído de forma desigual entre as partições conforme a liderança muda de broker. Avalie se suas aplicações toleram desequilíbrios temporários de carga.
Alterações de endereço IP do broker
Os endereços IP dos brokers podem mudar após a atualização. Conecte-se sempre ao seu cluster Kafka por meio de nomes de domínio, em vez de usar endereços IP fixos no código, para evitar falhas de conexão.
Antes da atualização
Faça testes primeiro. Se você possui várias instâncias, atualize um cluster de teste e verifique os resultados antes de atualizar o cluster de produção.
Valide suas bibliotecas de cliente. Garanta que seus clientes suportem reconexão automática para lidar adequadamente com as reinicializações dos brokers.
Utilize nomes de domínio. Confirme se todos os clientes se conectam por nomes de domínio, e não por endereços IP.
Prefira horários de baixa demanda. Agende a atualização para períodos de pouco tráfego a fim de minimizar o impacto de desequilíbrios temporários de carga.
Problemas conhecidos em clientes
Clientes Go desenvolvidos com a biblioteca Sarama podem apresentar consumo duplicado de mensagens durante atualizações de brokers. Para mais detalhes, consulte Por que o cliente Sarama Go não é recomendado?