Pular para o conteúdo principal

Pergunta 21 de 50

O que é um Consumer?

PlenoSênior

Pergunta

"O que é um Consumer no Kafka?"

O que o entrevistador quer avaliar

Conhecimento básico de arquitetura, geralmente usado como aquecimento antes de perguntas mais profundas sobre Consumer Group, offset e rebalance.

Resposta rápida

Consumer é qualquer aplicação que lê eventos de um ou mais tópicos, a partir da posição (offset) em que parou anteriormente. Consumers quase sempre operam dentro de um Consumer Group, que determina como as partitions do tópico são divididas entre as instâncias em execução.

Resposta nível Sênior

Um consumer é o papel assumido por qualquer aplicação que usa o client Kafka para ler registros de partitions. Ele não lê o tópico como um todo — ele lê as partitions especificamente atribuídas a ele dentro do seu Consumer Group, avançando sequencialmente a partir do último offset commitado. Em Spring Boot, isso tipicamente se materializa como um método anotado com @KafkaListener, que recebe cada registro desserializado e o processa dentro da lógica de negócio da aplicação.

Explicação aprofundada

Veja "Consumer" no Capítulo 3 e a implementação prática no Capítulo 14.

Exemplo financeiro

O notificacao-service é um consumer do tópico pix.recebido: ele lê os eventos atribuídos às suas partitions e envia uma notificação push para cada um, avançando seu próprio offset de forma independente de outros consumers do mesmo evento.

"Um Consumer lê o tópico inteiro"

Um consumer individual lê apenas as partitions atribuídas a ele dentro do seu Consumer Group — não o tópico inteiro, a menos que o tópico tenha só uma partition ou que ele seja o único consumer do grupo.

Pode vir a seguir

Prováveis follow-ups: "o que é um Consumer Group?" e "o que é Offset?".