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.