Sobes.tech
Junior

O que é Kafka?

sobes.tech IA

Resposta da IA

Sistema de publicação-suscrição distribuído e tolerante a falhas, desenvolvido pelo LinkedIn e que se tornou um projeto Apache. É utilizado para construir pipelines de dados em tempo real e aplicações de streaming.

Componentes e conceitos principais:

  • Broker: Servidor Kafka. O cluster Kafka consiste em um ou mais brokers.
  • Topic: Categoria na qual as mensagens são publicadas. Divide logicamente os fluxos de dados.
  • Partition: O tópico é dividido em partições. Cada partição é uma sequência ordenada e imutável de mensagens. As mensagens dentro de uma partição têm um deslocamento (offset) único.
  • Producer: Aplicação que publica mensagens em um tópico.
  • Consumer: Aplicação que se inscreve em um tópico e consome mensagens.
  • Consumer Group: Grupo de consumidores que consomem conjuntamente mensagens de um ou vários tópicos. As mensagens de uma partição são entregues apenas a um consumidor no grupo.
  • Zookeeper: Usado para coordenar o cluster Kafka (gestão de brokers, tópicos, partições, deslocamentos de grupos de consumidores). Em versões mais recentes, o papel do Zookeeper é parcialmente transferido para o serviço de consenso integrado KRaft.

O Kafka garante alta capacidade de processamento, escalabilidade e tolerância a falhas através da replicação de partições entre brokers. As mensagens são armazenadas em disco e estão disponíveis para os consumidores durante um período de tempo definido.

Exemplos de uso:

  • Recolha e processamento de logs em tempo real.
  • Processamento de dados em streaming (através do Kafka Streams, KSQL).
  • Desacoplamento de serviços (arquitetura de microserviços).
  • Sincronização de dados entre sistemas.