Preciso solucionar problemas ao atualizar meu cluster Amazon Managed Streaming para Apache Kafka (Amazon MSK).
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Considerações e práticas recomendadas
Antes de fazer upgrade do seu cluster do Amazon MSK, revise as seguintes práticas recomendadas:
- Defina o fator de replicação do cluster como 3 ou mais. Um fator de replicação de 1 pode causar partições off-line durante uma atualização contínua. Um fator de replicação de 2 pode causar perda de dados.
- Defina o mínimo de réplicas em sincronização (minISR) como um valor de fator de replicação de 1 ou inferior. Se o valor minISR for igual ao fator de replicação, ele pode bloquear a produção do cluster durante uma atualização contínua. Um minISR de 2 permite que tópicos replicados em três vias estejam disponíveis quando uma réplica estiver off-line.
- Antes de atualizar a configuração de um cluster, certifique-se de que o cluster está no estado ATIVO.
- Use a versão recomendada do Apache Kafka ao criar novos clusters do Amazon MSK.
- Inclua pelo menos um agente de cada Zona de disponibilidade nas strings do cliente. Ter vários agentes na string de conexão de um cliente permite o failover quando um agente específico estiver off-line para atualização.
- Use o Apache Kafka AdminClient versão 2.8.0 ou superior para o gerenciamento de tópicos.
- Faça upgrade dos clientes de conexão para a versão recomendada ou superior. Os upgrades de clientes não estão sujeitos às datas de fim da vida útil (end of life, EOL) da versão do Kafka do seu cluster do Amazon MSK.
Observação: o Apache Kafka fornece uma política bidirecional de compatibilidade de clientes que permite que clientes mais antigos trabalhem com clusters mais novos e permite que clientes mais novos trabalhem com clusters mais antigos. Para obter mais informações, consulte Compatibility (Compatibilidade) no site do Apache Kafka.
- Faça upgrade do seu cluster durante períodos de baixo tráfego. A quantidade de tempo necessária para fazer upgrade da versão do Apache Kafka depende do número de agentes em seu cluster.
Observação: ao fazer upgrade da versão do cluster, não é possível fazer outras atualizações até que o upgrade da versão seja concluído. Contudo, durante o upgrade é possível produzir e consumir a partir do cluster.
Observação: ao atualizar o tipo de instância, você não faz upgrade automaticamente da versão do cluster.
Para obter mais informações, consulte Práticas recomendadas para upgrades de versão.
Monitore o upgrade
Ao criar um cluster do Amazon MSK, é possível especificar qual versão do Apache Kafka precisa no cluster. Também é possível atualizar o cluster para uma versão mais recente do Apache Kafka depois de criar o cluster.
É possível monitorar o progresso da atualização na guia Operações do cluster no console do Amazon MSK. Depois que o upgrade atingir 17%, pode demorar várias horas para que ele seja concluído.
Observação: o Amazon MSK realiza o upgrade em um processo contínuo de reinicialização. O Amazon MSK retira um agente do cluster por vez e faz o upgrade da sua versão do Kafka. O agente que recebeu o upgrade se junta novamente ao cluster e o Amazon MSK retira o próximo agente. Esse processo continua até que o Amazon MSK faça upgrade do último agente com a nova versão do Kafka.
Para monitorar o progresso do upgrade em seu cluster, por meio da AWS CLI, execute o comando describe-cluster-operations:
aws kafka describe-cluster-operation —cluster-operation-arn ClusterOperationArn
Se a Operação estiver no estado Incompleto ou Falhou, entre em contato com o AWS Support.
Solucionar erros
As operações de partição em um agente consomem grandes quantidades de recursos do sistema. Se você tiver um número de partições maior do que o limite recomendado, poderá sobrecarregar os recursos disponíveis no cluster. Quando os recursos do cluster ficam sobrecarregados, não é possível atualizar a configuração do cluster, a versão do Apache Kafka para o cluster, nem atualizar o cluster para um tipo de agente menor. Quando o número de partições por agente excede o valor recomendado, você recebe uma das seguintes mensagens de erro:
“Error updating cluster configuration There was a problem updating cluster configuration. If the problem persists, contact AWS Support. The number of partitions per broker is above the recommended limit. Add more brokers and rearrange the partitions per broker to be below the recommended limit, then retry the request.“
-ou-
“Upgrade is stuck in the stage “Initializing upgrade””
Para resolver os erros acima, realize as seguintes ações: