Editar

Partilhar via


Migração do Apache Kafka para o Azure

Azure HDInsight
Azure Cosmos DB
Azure Data Lake Storage
Azure Synapse Analytics
Azure Stream Analytics

O Apache Kafka é um sistema de mensagens distribuído altamente escalável e tolerante a falhas que implementa uma arquitetura de publicação-assinatura. Ele é usado como uma camada de ingestão em cenários de streaming em tempo real, como IoT e sistemas de monitoramento de log em tempo real. Ele também é usado cada vez mais como o armazenamento de dados somente apêndice imutável em arquiteturas Kappa.

Apache, Apache Spark®, Apache Hadoop, Apache HBase, Apache Storm®, Apache Sqoop®®, Apache Kafka® e o logotipo flame são marcas registradas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou em outros países.® Nenhum endosso da Apache Software Foundation está implícito no uso dessas marcas.

Abordagem da migração

Este artigo apresenta várias estratégias para migrar o Kafka para o Azure:

Aqui está um fluxograma de decisão para decidir qual usar:

Diagram that shows a decision chart for determining a strategy for migrating Kafka to Azure.

Migrar o Kafka para a infraestrutura como serviço (IaaS) do Azure

Para obter uma maneira de migrar o Kafka para o Azure IaaS, consulte Kafka em VMs do Ubuntu.

Migrar Kafka para Hubs de Eventos do Azure para Kafka

Os Hubs de Eventos fornecem um ponto de extremidade compatível com as APIs de produtor e consumidor do Apache Kafka. Esse ponto de extremidade pode ser usado pela maioria dos aplicativos cliente Apache Kafka, portanto, é uma alternativa à execução de um cluster Kafka no Azure. O ponto de extremidade suporta clientes que usam versões 1.0 e posteriores das APIs. Para obter mais informações sobre esse recurso, consulte Visão geral dos Hubs de Eventos do Azure para Apache Kafka.

Para saber como migrar seus aplicativos Apache Kafka para usar Hubs de Eventos do Azure, consulte Migrar para Hubs de Eventos do Azure para Ecossistemas Apache Kafka.

Kafka e Hubs de Eventos apresentam diferenças

Como Kafka e Hubs de Eventos são semelhantes? Qual é a diferença entre Kafka e Hubs de Eventos?
Ambos usam partições. Existem diferenças nestes domínios:
As partições são independentes. • PaaS vs. software
Ambos usam um conceito de cursor do lado do cliente. • Particionamento
Ambos podem ser dimensionados para cargas de trabalho muito altas. • APIs
Conceptualmente são quase iguais. • Tempo de execução
Nenhum dos dois usa o protocolo HTTP para receber. • Protocolos
• Durabilidade
• Segurança
• Limitação
Diferenças de particionamento
Kafka Event Hubs
A escala é gerenciada pela contagem de partições. A escala é gerenciada por unidades de taxa de transferência.
Você deve balancear a carga de partições entre máquinas. O balanceamento de carga é automático.
Você deve refragmentar manualmente usando dividir e mesclar. O reparticionamento não é necessário.
Diferenças de durabilidade
Kafka Event Hubs
Volátil por padrão Sempre durável
Replicado após o ACK Replicado antes do ACK
Depende do disco e do quórum Fornecido pelo armazenamento
Diferenças de segurança
Kafka Event Hubs
SSL e SASL SAS e SASL/PLAIN RFC 4618
ACLs semelhantes a arquivos Política
Criptografia de transporte opcional TLS obrigatório
Baseado no utilizador Baseado em token (ilimitado)
Outras diferenças
Kafka Event Hubs
Kafka não acelera. Os Hubs de Eventos suportam limitação.
Kafka usa um protocolo proprietário. Os Hubs de Eventos usam o protocolo AMQP 1.0.
Kafka não usa HTTP para envio. Os Hubs de Eventos usam HTTP Send e Batch Send.

Migrar Kafka no Azure HDInsight

Você pode migrar Kafka para Kafka no Azure HDInsight. Para obter mais informações, consulte O que é o Apache Kafka no Azure HDInsight?.

Use o AKS com Kafka no HDInsight

Consulte Usar o Serviço Kubernetes do Azure com o Apache Kafka no HDInsight.

Migração de dados Kafka

Você pode usar a ferramenta MirrorMaker do Kafka para replicar tópicos de um cluster para outro. Essa técnica pode ajudá-lo a migrar dados depois que um cluster Kafka é provisionado. Para obter mais informações, consulte Usar o MirrorMaker para replicar tópicos do Apache Kafka com o Kafka no HDInsight.

Aqui está uma abordagem de migração que usa espelhamento:

  • Mova os produtores primeiro e depois mova os consumidores. Quando você migra os produtores, você impede a produção de novas mensagens na fonte Kafka.
  • Depois que a fonte Kafka consome todas as mensagens restantes, você pode migrar os consumidores.

Aqui estão as etapas de implementação:

  1. Altere o endereço de conexão Kafka do cliente produtor para apontar para a nova instância Kafka.
  2. Reinicie os serviços de negócios do produtor e envie novas mensagens para a nova instância de Kafka.
  3. Aguarde até que os dados na fonte Kafka sejam consumidos.
  4. Altere o endereço de conexão Kafka do cliente consumidor para apontar para a nova instância Kafka.
  5. Reinicie os serviços de negócios do consumidor para consumir mensagens da nova instância do Kafka.
  6. Verifique se os consumidores conseguiram obter dados da nova instância de Kafka.

Monitorar o cluster de Kafka

Você pode usar os logs do Azure Monitor para analisar os logs gerados pelo Apache Kafka no HDInsight. Para obter mais informações, consulte: Analisar logs para Apache Kafka no HDInsight.

Apache Kafka Streams API

A API Kafka Streams torna possível processar dados quase em tempo real e fornece a capacidade de unir e agregar dados. Vale a pena conhecer muitos outros recursos da API. Para obter mais informações, consulte Introducing Kafka Streams: Stream Processing Made Simple - Confluent.

A parceria Microsoft e Confluent

Confluent fornece um serviço nativo da nuvem para o Apache Kafka. A Microsoft e a Confluent têm uma aliança estratégica. Para obter mais informações, consulte:

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Principais autores:

Outros contribuidores:

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos

Introduções de produtos do Azure

Referência do produto Azure

Outro