Depois do pacote de produtor, a versão v1.2 do Kafka Simulator se volta para o lado da leitura e o seu evento mais mal compreendido: o rebalanceamento. Este pacote adiciona 10 novos cenários, levando o programa a 33 de 122.
O que há na v1.2
Um grupo de consumidores é um problema de coordenação vestido com uma API simples. A v1.2 torna essa coordenação visível:
- Estratégias de atribuição -
range,roundrobin,stickyecooperative-stickylado a lado, para você ver quais param o mundo e quais movem apenas as partições necessárias. - Associação estática (KIP-345) - por que um membro que reinicia dentro de
session.timeout.msmantém a sua atribuição e não dispara nenhum rebalanceamento, e o que acontece quando ele fica fora do ar por tempo demais. - Os dois timeouts -
session.timeout.msversusmax.poll.interval.ms: um diz respeito aos heartbeats, o outro a um consumidor que está vivo mas preso no processamento. Falham de formas diferentes, e o simulador mostra ambos. - Bloqueio e retomada - um consumidor que para de fazer poll, é expulso e volta a se juntar ao grupo - e exatamente quais partições se movem quando isso acontece.
O rebalanceamento é difícil de ensinar porque só faz sentido como sequência: revogar, atribuir, retomar. Diagramas estáticos comprimem essa sequência em uma única seta. Aqui você pode percorrê-la e ver a propriedade mudar de mãos uma partição de cada vez.
Por que isto importa
A maioria dos incidentes de consumidores em produção são, na verdade, incidentes de rebalanceamento - um deploy que parece uma queda, um max.poll.interval.ms curto demais para um lote lento, um assignor sticky que move silenciosamente mais do que o esperado. Ver o rebalanceamento em movimento, na velocidade que você escolher, é a forma mais rápida de construir a intuição que torna esses incidentes óbvios em retrospecto.
Abra o simulador, adicione e mate consumidores, e observe o grupo se formar de novo.