Pergunta 21 de 50
O que é um Consumer?
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?".
Capítulos relacionados