Migrar cargas de trabalho do Apache Kafka para o Azure HDInsight 4.0
O Azure HDInsight 4.0 oferece os mais recentes componentes open-source com aprimoramentos significativos em desempenho, conectividade e segurança. Este documento explica como migrar cargas de trabalho do Apache Kafka no HDInsight 3.6 para o HDInsight 4.0. Depois de migrar suas cargas de trabalho para o HDInsight 4.0, você pode usar muitos dos novos recursos que não estão disponíveis no HDInsight 3.6.
Caminhos de migração do Kafka para HDInsight 3.6
O HDInsight 3.6 dá suporte a duas versões do Kafka: 1.0.0 e 1.1.0. O HDInsight 4,0 dá suporte às versões 1.1.0 e 2.1.0. Dependendo de qual versão do Kafka e qual versão do HDInsight você gostaria de executar, há vários caminhos de migração com suporte. Esses caminhos são explicados abaixo e ilustrados no diagrama a seguir.
- Execute o Kafka e o HDInsight nas versões mais recentes (recomendado) : migre um aplicativo HDInsight 3.6 e Kafka 1.0.0 ou 1.1.0 para o HDInsight 4.0 com Kafka 2.1.0 (caminhos D e E abaixo).
- Execute o HDInsight na versão mais recente, mas o Kafka apenas em uma versão mais recente: migre um aplicativo HDInsight 3.6 e Kafka 1.0.0 para o HDInsight 4.0 com o Kafka 1.1.0 (caminho B abaixo).
- Execute o HDInsight na versão mais recente, mas mantenha a versão do Kafka: migre um aplicativo HDInsight 3.6 e Kafka 1.1.0 para o HDInsight 4.0 com o Kafka 1.1.0 (caminho C abaixo).
- Execute o Kafka em uma versão mais recente, mas mantenha a versão do HDInsight: migre um aplicativo Kafka 1.0.0 para 1.1.0 e permaneça no HDInsight 3.6 (caminho A abaixo). Observe que essa opção ainda exigirá a implantação de um novo cluster. Não há suporte para a atualização da versão Kafka em um cluster existente. Depois de criar um cluster com a versão desejada, migre os clientes do Kafka para usar o novo cluster.
Versões do Apache Kafka
Kafka 1.1.0
Se você migrar do Kafka 1.0.0 para o 1.1.0, poderá aproveitar os seguintes novos recursos:
- As melhorias no controlador Kafka aceleram o desligamento controlado, para que você possa reiniciar os agentes e se recuperar de problemas com mais rapidez.
- Melhorias na lógica FetchRequests que permitem que você tenha mais partições (e, portanto, mais tópicos) no cluster.
- O Kafka Connect dá suporte a cabeçalhos de registro e expressões regulares para tópicos.
Para obter uma lista completa de atualizações, consulte notas sobre a versão do Apache Kafka 1.1.
Apache Kafka 2.1.0
Se você migrar para o Kafka 2.1, poderá aproveitar os seguintes recursos:
- Melhor resiliência do agente devido a um protocolo de replicação aprimorado.
- Nova funcionalidade na API KafkaAdminClient.
- Gerenciamento de cota configurável.
- Suporte para compactação Zstandard.
Para obter uma lista completa de atualizações, consulte notas de versão do Apache Kafka 2.0 e notas de versão do Apache Kafka 2.1.
Compatibilidade do cliente Kafka
Novos agentes Kafka dão suporte a clientes mais antigos. KIP-35 - Recuperando versão de protocolo introduziu um mecanismo para determinar dinamicamente a funcionalidade de um agente Kafka e KIP-97: a política de compatibilidade de RPC de cliente Kafka aprimorada introduziu uma nova política de compatibilidade e garantias para o cliente Java. Anteriormente, um cliente Kafka tinha que interagir com um agente da mesma versão ou uma versão mais recente. Agora, as versões mais recentes dos clientes Java e outros clientes que dão suporte ao KIP-35, como librdkafka
podem recorrer a tipos de solicitação mais antigos ou gerar erros apropriados se a funcionalidade não estiver disponível.
Observe que isso não significa que o cliente ofereça suporte a agentes mais antigos. Para obter mais informações, consulte Matriz de compatibilidade.
Processo de migração geral
As diretrizes de migração a seguir pressupõem um cluster Apache Kafka 1.0.0 ou 1.1.0 implantado no HDInsight 3.6 em uma única rede virtual. O agente existente tem alguns tópicos e está sendo usado ativamente por produtores e consumidores.
Para concluir a migração, execute as seguintes etapas:
Implante um novo cluster e clientes do HDInsight 4.0 para teste. Implante um novo cluster Kafka HDInsight 4.0. Se várias versões de cluster Kafka puderem ser selecionadas, é recomendável selecionar a versão mais recente. Após a implantação, defina alguns parâmetros conforme necessário e crie um tópico com o mesmo nome de seu ambiente existente. Além disso, defina TLS e criptografia BYOK (traga sua própria chave) conforme necessário. Em seguida, verifique se ele funciona corretamente com o novo cluster.
Alterne o cluster para o aplicativo produtor e aguarde até que todos os dados da fila sejam consumidos pelos consumidores atuais. Quando o novo cluster Kafka HDInsight 4.0 estiver pronto, alterne o destino do produtor existente para o novo cluster. Deixe-o como se encontrar até que o aplicativo consumidor existente tenha consumido todos os dados do cluster existente.
Alterne o cluster no aplicativo consumidor. Depois de confirmar que o aplicativo consumidor existente concluiu o consumo de todos os dados do cluster existente, alterne a conexão para o novo cluster.
Remova o cluster antigo e os aplicativos de teste, conforme necessário. Depois que o comutador estiver concluído e funcionando corretamente, remova o antigo cluster Kafka HDInsight 3.6 e os produtores e consumidores usados no teste, conforme necessário.