Pular para o conteúdo principal

Pergunta 22 de 50

O que é um Consumer Group?

PlenoSênior

Pergunta

"O que é um Consumer Group e por que ele existe?"

O que o entrevistador quer avaliar

Se você entende o Consumer Group como o mecanismo que permite ao Kafka tanto distribuir trabalho quanto compartilhar dados entre sistemas independentes — a peça central para explicar escalabilidade de consumo.

Resposta rápida

Consumer Group é um conjunto de instâncias de consumer identificadas pelo mesmo group.id. O Kafka garante que cada partition de um tópico assinado é atribuída a exatamente um consumer do grupo por vez — nunca dois consumers do mesmo grupo lendo a mesma partition simultaneamente.

Resposta nível Sênior

Consumer Group é o que torna o Kafka capaz de fazer duas coisas ao mesmo tempo: distribuir trabalho (dentro de um grupo, cada partition vai para um único consumer, similar ao que uma fila faz) e compartilhar dados (grupos diferentes lendo o mesmo tópico são totalmente independentes entre si, cada um com seu próprio conjunto de offsets commitados). O número de partitions do tópico define o paralelismo máximo de consumo dentro de um único grupo — não existe forma de um grupo processar com mais paralelismo do que partitions disponíveis.

Explicação aprofundada

Veja "Como um Consumer Group divide o trabalho" no Capítulo 6.

Exemplo financeiro

O tópico pix.recebido pode ter dois Consumer Groups lendo simultaneamente: saldo-service (credita o valor) e antifraude-service (avalia risco) — cada um com seu próprio grupo, avançando offsets de forma totalmente independente, sem que um afete o outro.

"Dois Consumer Groups diferentes competem pelas mesmas mensagens"

Não — essa é justamente a confusão mais comum. Consumer Groups diferentes são completamente independentes; cada um lê o tópico do seu próprio jeito. A competição por partitions só acontece dentro do mesmo grupo, entre suas próprias instâncias.

Pode vir a seguir

Prováveis follow-ups: "o que acontece quando existem mais consumidores que partitions?" e "o que é Rebalance?".

Capítulos relacionados