Kafka Avançado com Spring Boot: Retry, DLQ, Partitions e Escalabilidade (Guia Completo com Projeto Prático)
Voltar para o blog
Mensageria

Kafka Avançado com Spring Boot: Retry, DLQ, Partitions e Escalabilidade (Guia Completo com Projeto Prático)

Aprenda Kafka avançado com Spring Boot na prática. Entenda Retry, Dead Letter Queue, Partitions, Consumer Groups, escalabilidade, performance, eventos distribuídos e arquitetura real para microsserviços modernos.

4 min de leitura
104 views
04 de maio de 2026
Compartilhe
Compartilhar:LinkedInXWhatsAppFacebook

Kafka Avançado com Spring Boot: Retry, DLQ, Partitions e Escalabilidade

Muita gente aprende Kafka da forma errada.

Faz:

  • producer

  • consumer

  • envia mensagem

  • recebe mensagem

E acha que entendeu Kafka.

Mas em produção a história muda completamente.

Porque sistemas reais enfrentam:

  • falhas

  • mensagens inválidas

  • retries infinitos

  • perda de processamento

  • concorrência

  • alto volume

  • particionamento

  • reprocessamento

  • escalabilidade distribuída

E é exatamente aqui que começam os problemas.

O Kafka não é difícil apenas pela API.

Ele é difícil porque: event-driven architecture muda completamente a forma de pensar sistemas.

Neste guia vamos entrar na parte que realmente separa:

  • projetos simples

  • arquiteturas enterprise

Vamos abordar:

  • Retry

  • DLQ

  • Partitions

  • Consumer Groups

  • escalabilidade

  • performance

  • boas práticas

  • arquitetura real

  • projeto prático com Spring Boot

Tudo de forma prática.


O Que é Kafka de Verdade?

O Apache Kafka não é apenas um broker de mensagens.

Ele é uma plataforma distribuída de streaming de eventos.

Na prática: ele permite que sistemas troquem eventos de forma:

  • desacoplada

  • escalável

  • resiliente

  • distribuída


Por Que Kafka Cresceu Tanto?

Porque sistemas modernos precisam lidar com:

  • milhões de eventos

  • microsserviços

  • processamento assíncrono

  • escalabilidade horizontal

E soluções tradicionais começaram a sofrer.


Onde Kafka é Muito Utilizado?

Kafka domina principalmente:

  • bancos

  • fintechs

  • e-commerce

  • logística

  • marketplaces

  • streaming

  • ERPs

  • sistemas enterprise


Exemplo Real

Imagine um e-commerce.

Quando pedido é criado:

Pedido criado

Evento enviado para Kafka

Serviço de pagamento consome

Serviço de estoque consome

Serviço de e-mail consome

Serviço de analytics consome

Tudo desacoplado.


Arquitetura Orientada a Eventos

Aqui está o ponto importante.

Kafka normalmente é usado em: Event-Driven Architecture.

Ou seja: sistemas passam a reagir eventos.

Isso reduz:

  • acoplamento

  • dependência síncrona

  • gargalos


Kafka com Spring Boot

O Spring possui integração excelente através do: Spring for Apache Kafka

Isso facilita:

  • producers

  • consumers

  • serialização

  • retry

  • DLQ

  • listeners

  • configuração enterprise


Dependência Maven

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
</dependency>

Producer Kafka

Exemplo simples:

@Service
@RequiredArgsConstructor
public class OrderProducer {

    private final KafkaTemplate<String, String> kafkaTemplate;

    public void send(String message) {
        kafkaTemplate.send("orders-topic", message);
    }
}

Consumer Kafka

@Component
public class OrderConsumer {

    @KafkaListener(topics = "orders-topic")
    public void consume(String message) {
        System.out.println(message);
    }
}

Até aqui: todo mundo conhece.

Agora começa a parte importante.


O Problema do Mundo Real

E se:

  • banco cair?

  • API externa falhar?

  • JSON vier inválido?

  • processamento quebrar?

  • serviço estiver fora?

Sem tratamento correto: o caos começa.


O Que é Retry no Kafka?

Retry é a tentativa automática de reprocessar mensagens com falha.

Isso é essencial porque: falhas temporárias acontecem o tempo inteiro.

Exemplo:

  • timeout

  • banco lento

  • API indisponível

  • rede


Problema do Retry Mal Feito

Muita gente faz retry infinito.

Resultado:

  • loop eterno

  • consumo travado

  • partição bloqueada

  • efeito cascata

Isso destrói sistemas.


Retry Correto no Spring Kafka

@RetryableTopic(
    attempts = "3",
    backoff = @Backoff(delay = 2000)
)
@KafkaListener(topics = "orders-topic")
public void consume(String message) {

    processOrder(message);
}

Aqui:

  • tenta 3 vezes

  • espera 2 segundos

Muito melhor.


O Que é DLQ?

DLQ significa: Dead Letter Queue.

Basicamente: mensagens que falharam definitivamente vão para uma fila separada.

Isso evita:

  • perda de mensagem

  • loop infinito

  • travamento


Fluxo Correto

Mensagem falha

Retry executa

Continua falhando

Vai para DLQ

Perfeito.


Configurando DLQ

@Bean
public DeadLetterPublishingRecoverer recoverer(
        KafkaTemplate<Object, Object> template) {

    return new DeadLetterPublishingRecoverer(template);
}

Por Que DLQ é Tão Importante?

Porque sistemas reais falham.

Sempre.

E ignorar isso é erro grave de arquitetura.


O Que São Partitions?

Partitions são divisões de um tópico Kafka.

Elas permitem:

  • paralelismo

  • distribuição

  • escalabilidade


Exemplo

Topic: orders-topic

Pode possuir:

  • partition 0

  • partition 1

  • partition 2

  • partition 3

Cada partição pode ser consumida separadamente.


O Grande Benefício das Partitions

Escalabilidade horizontal.

Mais consumers: mais processamento paralelo.


Consumer Groups

Consumer Groups permitem múltiplos consumidores trabalhando juntos.

Exemplo:

Consumer Group

  • Consumer A

  • Consumer B

  • Consumer C

Kafka distribui partitions automaticamente.


Regra Importante

1 partition

Apenas 1 consumer daquela partition

Isso garante ordem.


Escalabilidade Real

Imagine:

10 partitions.

Você pode ter:

  • até 10 consumers processando paralelamente.

Isso é MUITO poderoso.


O Que Define a Chave da Partition?

Normalmente:

  • userId

  • orderId

  • accountId

Exemplo:

kafkaTemplate.send(
    "orders-topic",
    order.getUserId(),
    objectMapper.writeValueAsString(order)
);

Isso garante: eventos do mesmo usuário na mesma partition.


Ordem no Kafka

Outro ponto importante.

Kafka garante ordem:

  • apenas dentro da mesma partition.

Muita gente erra isso.


Kafka é Muito Rápido

Muito.

Porque foi criado para: alto throughput.

Grandes empresas processam:

  • milhões de eventos por segundo.


Boas Práticas de Performance

Evitar payload gigante

Mensagens muito grandes prejudicam throughput.


Usar compressão

Ajuda bastante.


Controlar retries

Retry errado destrói performance.


Configurar batch

Melhora throughput absurdamente.


Monitoramento é Obrigatório

Kafka sem observabilidade vira pesadelo.

Monitorar:

  • lag

  • throughput

  • retries

  • DLQ

  • consumers

é essencial.


Ferramentas Muito Utilizadas


Kafka vs RabbitMQ

Item

Kafka

RabbitMQ

Throughput

Excelente

Médio

Escalabilidade

Excelente

Boa

Streaming

Excelente

Limitado

Ordem

Excelente

Boa

Event Streaming

Excelente

Médio

Complexidade

Alta

Média


Quando Kafka Vale Muito a Pena?

Excelente para:

  • microsserviços

  • alto volume

  • processamento assíncrono

  • eventos distribuídos

  • analytics

  • sistemas financeiros

  • streaming


Quando Talvez Não Seja Necessário?

Para:

  • sistemas pequenos

  • baixa escala

  • pouca concorrência

Talvez seja exagero.


Kafka Não Resolve Arquitetura Ruim

Esse ponto é importante.

Kafka NÃO salva:

  • código ruim

  • arquitetura ruim

  • eventos mal definidos

  • acoplamento errado

Na verdade: Kafka pode piorar caos arquitetural.


O Erro Mais Comum em Kafka

Criar eventos demais.

Tudo vira evento.

Resultado:

  • rastreabilidade horrível

  • debugging difícil

  • arquitetura impossível de manter


Como Estruturar Eventos Corretamente?

Eventos precisam representar: algo importante de negócio.

Exemplo:

  • OrderCreated

  • PaymentApproved

  • UserRegistered

E não:

  • SaveButtonClicked


Projeto Prático Sugerido

Excelente projeto para estudo:

Sistema de pedidos

Serviços:

  • Order Service

  • Payment Service

  • Notification Service

  • Inventory Service

Fluxos:

  • retry

  • DLQ

  • partitions

  • consumer groups

  • observabilidade

Isso ensina MUITO.


Kafka em Arquiteturas Enterprise

Hoje Kafka virou praticamente padrão em:

  • fintechs

  • bancos

  • marketplaces

  • grandes plataformas

Porque resolve:

  • escala

  • desacoplamento

  • resiliência

Muito bem.


Vale a Pena Aprender Kafka em 2026?

Sim.

Muito.

Principalmente para backend Java.

Hoje Kafka virou uma das tecnologias mais valorizadas no mercado enterprise.


O Futuro do Kafka

Tudo indica crescimento ainda maior.

Principalmente com:

  • microsserviços

  • event-driven

  • streaming

  • IA em tempo real

  • analytics distribuído


Nossa Conclusão

Kafka não é apenas: “fila de mensagens”.

Ele muda completamente: a arquitetura do sistema.

Quando bem utilizado:

  • escala absurdamente

  • desacopla serviços

  • melhora resiliência

  • suporta alto volume

Mas exige:

  • arquitetura madura

  • observabilidade

  • tratamento de falhas

  • modelagem correta de eventos

Principalmente em sistemas enterprise modernos.

nexucodeplay
Autor do artigo

nexucodeplay

Desenvolvedor Fullstack

Especialista em Java, Spring Boot, React, Flutter e arquitetura moderna de software.

Perguntas frequentes

Dúvidas comuns sobre o tema

Spring Boot é um framework do ecossistema Spring utilizado para desenvolvimento de APIs, microsserviços e aplicações corporativas em Java. Ele simplifica configurações complexas, acelera desenvolvimento e oferece integração com banco de dados, segurança, mensageria, cache, autenticação JWT, observabilidade e arquitetura moderna.

Publicidade

Apoie o projeto acessando nossos parceiros.

Publicidade
Compartilhe

Curtiu esse conteúdo?

Compartilhe este artigo com outros desenvolvedores e ajude mais pessoas a evoluírem na carreira.

Deixe seu comentário

Compartilhe sua opinião sobre este conteúdo.

Deixe um comentário

Comentários passam por moderação para evitar spam e manter a qualidade.

Comentários

Ainda não existem comentários.