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:
- Migrar o Kafka para a infraestrutura como serviço (IaaS) do Azure
- Migrar Kafka para Hubs de Eventos do Azure para Kafka
- Migrar Kafka no Azure HDInsight
- Use o AKS com Kafka no HDInsight
Aqui está um fluxograma de decisão para decidir qual usar:
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:
- Altere o endereço de conexão Kafka do cliente produtor para apontar para a nova instância Kafka.
- Reinicie os serviços de negócios do produtor e envie novas mensagens para a nova instância de Kafka.
- Aguarde até que os dados na fonte Kafka sejam consumidos.
- Altere o endereço de conexão Kafka do cliente consumidor para apontar para a nova instância Kafka.
- Reinicie os serviços de negócios do consumidor para consumir mensagens da nova instância do Kafka.
- 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:
- Confluent e Microsoft anunciam aliança estratégica
- Introdução à integração perfeita entre o Microsoft Azure e o Confluent Cloud
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Principais autores:
- Namrata Maheshwary - Brasil | Arquiteto de Soluções Cloud Sênior
- Raja N - Brasil | Diretor, Customer Success
- Hideo Takagi - Brasil | Arquiteto de Soluções Cloud
- Ram Yerrabotu - Brasil | Arquiteto de Soluções Cloud Sênior
Outros contribuidores:
- Ram Baskaran - Brasil | Arquiteto de Soluções Cloud Sênior
- Jason Bouska - Brasil | Engenheiro de Software Sênior
- Eugene Chung - Brasil | Arquiteto de Soluções Cloud Sênior
- Pawan Hosatti - Brasil | Arquiteto de Soluções Cloud Sênior - Engenharia
- Daman Kaur - Brasil | Arquiteto de Soluções Cloud
- Danny Liu - Brasil | Arquiteto de Soluções Cloud Sênior - Engenharia
- Jose Mendez Arquiteto Sênior de Soluções Cloud
- Ben Sadeghi - Brasil | Especialista Sénior
- Sunil Sattiraju - Brasil | Arquiteto de Soluções Cloud Sênior
- Amanjeet Singh - Brasil | Gerente de Programa Principal
- Nagaraj Seeplapudur Venkatesan - Brasil | Arquiteto de Soluções Cloud Sênior - Engenharia
Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.
Próximos passos
Introduções de produtos do Azure
- Introdução ao Azure Data Lake Storage Gen2
- O que é o Apache Spark no Azure HDInsight?
- O que é o Apache Hadoop no Azure HDInsight?
- O que é o Apache HBase no Azure HDInsight?
- O que é o Apache Kafka no Azure HDInsight?
- Visão geral da segurança corporativa no Azure HDInsight
Referência do produto Azure
- Documentação do Microsoft Entra
- Documentação do Azure Cosmos DB
- Documentação do Azure Data Factory
- Documentação do Azure Databricks
- Documentação dos Hubs de Eventos do Azure
- Documentação das Funções do Azure
- Documentação do Azure HDInsight
- Documentação de governança de dados do Microsoft Purview
- Documentação do Azure Stream Analytics
- Azure Synapse Analytics
Outro
- Pacote de Segurança Empresarial para Azure HDInsight
- Desenvolver programas Java MapReduce para Apache Hadoop no HDInsight
- Utilizar o Apache Sqoop com o Hadoop no HDInsight
- Visão geral do Apache Spark Streaming
- Tutorial do Structured Streaming
- Usar Hubs de Eventos do Azure a partir de aplicativos Apache Kafka