Desenvolvimento Web

Apache Kafka Para Iniciantes: Streaming de Dados em Tempo Real na Pratica

Apache Kafka Para Iniciantes: Streaming de Dados em Tempo Real na Pratica

Apache Kafka e a plataforma de streaming de dados mais usada no mundo. Empresas como LinkedIn (que criou o Kafka), Netflix, Uber, Nubank e iFood processam bilhoes de eventos por dia com Kafka. Este guia explica os conceitos fundamentais e mostra como comecar na pratica.

O que e streaming de dados

Processamento em batch: dados sao coletados ao longo do tempo e processados periodicamente (ex: ETL diario que roda a meia-noite). Simples, mas os dados ficam defasados ate o proximo processamento.

Processamento em streaming: dados sao processados continuamente assim que chegam. Permite acoes em tempo real: detectar fraude no momento da transacao, atualizar dashboard ao vivo, enviar notificacao instantanea quando algo acontece.

Kafka e o barramento central que conecta produtores de dados (apps, sensores, bancos) a consumidores de dados (pipelines, dashboards, microservicos). Os dados fluem continuamente pelo Kafka sem necessidade de batches.

Conceitos fundamentais

Topic: um canal de dados nomeado (ex: “vendas”, “logs-de-acesso”, “eventos-do-app”). Produtores publicam mensagens em topics, consumidores leem de topics.

Partition: cada topic e dividido em particoes para paralelismo. Messages dentro de uma particao sao ordenadas (FIFO). Mais particoes = mais throughput.

Producer: aplicacao que envia mensagens para um topic do Kafka. Consumer: aplicacao que le mensagens de um topic. Consumer Group: grupo de consumers que dividem as particoes de um topic entre si (cada particao e lida por exatamente um consumer do grupo).

Broker: servidor Kafka. Um cluster Kafka tem multiplos brokers para alta disponibilidade e escalabilidade.

Offset: posicao de leitura de cada consumer em cada particao. Permite que um consumer retome do ponto onde parou em caso de reinicio.

Setup com Docker Compose

A forma mais rapida de rodar Kafka localmente em 2026:

version: “3”
services:
kafka:
image: apache/kafka:3.7.0
ports:
– “9092:9092”
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT

A imagem oficial do Kafka 3.7+ ja vem com KRaft (modo sem Zookeeper), simplificando muito o setup.

Produzindo e consumindo com Python

pip install confluent-kafka:

# Producer
from confluent_kafka import Producer
import json

producer = Producer({“bootstrap.servers”: “localhost:9092”})

def enviar_evento(topic, dados):
producer.produce(topic, value=json.dumps(dados).encode(“utf-8”))
producer.flush()

enviar_evento(“vendas”, {“id”: 123, “produto”: “Notebook”, “valor”: 4500, “timestamp”: “2026-03-16T10:30:00”})

# Consumer
from confluent_kafka import Consumer

consumer = Consumer({
“bootstrap.servers”: “localhost:9092”,
“group.id”: “processador-vendas”,
“auto.offset.reset”: “earliest”,
})
consumer.subscribe([“vendas”])

while True:
msg = consumer.poll(1.0)
if msg is None:
continue
if msg.error():
print(f”Erro: {msg.error()}”)
continue
dados = json.loads(msg.value().decode(“utf-8″))
print(f”Venda recebida: {dados}”)

Casos de uso reais

Deteccao de fraude em tempo real: cada transacao financeira e publicada num topic Kafka. Um consumer com modelo de ML analisa em milissegundos e bloqueia transacoes suspeitas antes de serem processadas.

Atualizacao de estoque em tempo real: cada venda em qualquer canal (loja fisica, e-commerce, marketplace) publica no Kafka. Um consumer atualiza o estoque central e notifica se o nivel ficar abaixo do minimo.

Log aggregation: todos os microservicos publicam logs no Kafka em vez de escrever em disco. Um consumer centralizado (como Elastic Stack) indexa e torna os logs pesquisaveis.

CDC (Change Data Capture): usando Debezium, cada mudanca no banco de dados transacional (INSERT, UPDATE, DELETE) vira um evento no Kafka, permitindo replicacao em tempo real para o data lake.

Kafka na nuvem

Para producao sem gerenciar clusters: Confluent Cloud (plataforma do criador do Kafka), Amazon MSK (Managed Streaming for Kafka na AWS), Redpanda (compativel com Kafka, mais rapido e com menos overhead).

Tem um projeto em mente?

Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.

Resposta rápida Orçamento sem compromisso +100 projetos entregues
Compartilhar: