詳細検索

Uma breve introdução a Kafka

Avatar
por Chen Ziyu
4 min de leitura

Uma breve introdução a Kafka
Traduzido do English • Ver original

Não há como negar que já inauguramos a era do big data. Uma enorme quantidade de informações é gerada a cada segundo. Embora os tomadores de decisão possam obter insights valiosos com esses dados em constante crescimento, seu volume também representa consideráveis desafios para engenheiros de dados — maior demanda por espaços de armazenamento, necessidade de lidar com formatos de dados cada vez mais complexos e tráfego de rede altamente imprevisível. Felizmente, nos últimos anos foram criadas várias tecnologias dedicadas a digerir big data de forma eficiente, e Kafka é uma delas. Hoje, vou demonstrar como Kafka trabalha para ajudar a impulsionar sua jornada Kafka.

Primeiro, vamos começar com uma breve introdução ao Kafka. Kafka, ou Hadoop Kafka, é uma plataforma de streaming distribuída que facilita a publicação e o consumo de fluxos de dados. Foi originalmente desenvolvido pelo LinkedIn e agora é mantido pela Apache Software Foundation. Kafka é tolerante a falhas e escalável, o que o torna uma ferramenta perfeita para construir pipelines de dados em tempo real e aplicativos de streaming.

Alguns de vocês podem perguntar: "por que Kafka é tolerante a falhas, escalável e adequado para processar fluxos de dados?" Para responder a essa pergunta, precisamos mergulhar profundamente no funcionamento interno de Kafka.

Componentes Importantes em Kafka

  1. Tópico: Um tópico é um nome de categoria ou fluxo para o qual Kafka publica mensagens, ou seja, os dados que recebe. Se você está familiarizado com bancos de dados relacionais, pode pensar em um tópico como uma tabela. Podem existir múltiplos tópicos em um sistema, cada um armazenando dados em uma entidade específica. Kafka ainda divide cada tópico em múltiplas partições, cada uma das quais pode ser hospedada em um corretor diferente (servidor).
  2. Corretora: Uma corretora é um servidor que pode hospedar partições para um ou mais tópicos. Distribuir partições entre múltiplas corretoras tem os seguintes méritos. Primeiro, permite que Kafka lide com grandes volumes de dados e suporte alta taxa de transferência. Segundo, permite que Kafka replique dados entre partições. Isso é especialmente útil quando uma corretora está fora de serviço, pois assim Kafka pode transferir dados hospedados pelo corretor não funcional para outra corretora, o que garante a tolerância a falhas do sistema como um todo. Terceiro, torna a escalabilidade tão simples para Kafka, garantindo assim sua escalabilidade horizontal.
  3. Cluster: Um cluster Kafka é um conjunto de corretores que trabalham juntos para gerenciar e armazenar os dados em Kafka.

Agora que abordamos o funcionamento interno dos componentes mais cruciais em Kafka e por que Kafka deriva suas características mais desejáveis deles, vamos inspecionar de perto como Kafka se encaixa no processamento de big data com um exemplo simples.

Apache Kafka Architecture

Fonte: https://www.projectpro.io/article/apache-kafka-architecture-/442

Suponha que temos um produtor de dados e um consumidor de dados, e pretendemos usar Kafka para ajudar o consumidor de dados a digerir os dados gerados pelo produtor de dados. Além disso, suponha que o consumidor de dados tenha assinado o tópico (daqui em diante chamado de Tópico A) para o qual o produtor de dados publica os dados. No início do fluxo de trabalho, o produtor de dados gera alguns dados. Em seguida, o produtor de dados envia os dados para Kafka como uma mensagem, especificando que pretende postar no Tópico A. Kafka então publica a mensagem para o Tópico A. Kafka pode armazenar a mensagem em mais de uma partição do Tópico A, permitindo que a mesma mensagem exista em múltiplos corretores. Depois disso, o consumidor de dados tenta puxar a mensagem do Tópico A porque ele já assinou o Tópico A. Ele enviará uma solicitação para o cluster que contém os corretores que hospedam o Tópico A. O cluster então localiza a mensagem e ordena ao corretor que a armazena a entregar ao consumidor de dados, completando o fluxo de trabalho.

Para garantir que o consumidor de dados possa processar todos os dados de forma consistente e previsível, os corretores Kafka entregam mensagens ao consumidor de dados na ordem em que as mensagens são recebidas. O consumidor de dados também utiliza offsets, ou seja, identificadores únicos atribuídos a cada mensagem em um tópico, para acompanhar o progresso de seu consumo de dados. Ao comprometer um offset, o consumidor de dados indica a Kafka que já processou a mensagem correspondente ao offset e está pronto para receber as mensagens subsequentes.

Vale ressaltar que podemos usar o Kafka para facilitar a transferência de dados entre múltiplos produtores e consumidores de dados, o que faz do Kafka uma ferramenta verdadeiramente poderosa para facilitar o processamento de dados em um sistema complexo.

Em resumo, abordei os componentes mais vitais da Kafka e por que eles fazem da Kafka a ferramenta altamente escalável e tolerante a falhas que ela é. Além disso, também demonstrei como a Kafka atua como intermediária entre produtores e consumidores de dados, ajudando os produtores de dados a transferir os dados que geram para consumidores de dados para consumo posterior. Espero que este artigo tenha ajudado você a embarcar na sua jornada Kafka!

Related Articles