Dopo il pacchetto sul producer, la versione v1.2 del Kafka Simulator passa al lato lettura e al suo evento più frainteso: il rebalance. Questo pacchetto aggiunge 10 nuovi scenari, portando il percorso a 33 su 125.

Cosa c’è nella v1.2

Un gruppo di consumer è un problema di coordinazione travestito da una semplice API. La v1.2 rende visibile quella coordinazione:

  • Strategie di assegnazionerange, roundrobin, sticky e cooperative-sticky fianco a fianco, così vedi quali fermano il mondo e quali spostano solo le partizioni indispensabili.
  • Appartenenza statica (KIP-345) — perché un membro che si riavvia entro session.timeout.ms mantiene la sua assegnazione e non innesca alcun rebalance, e cosa succede quando resta spento troppo a lungo.
  • I due timeoutsession.timeout.ms contro max.poll.interval.ms: uno riguarda gli heartbeat, l’altro un consumer vivo ma bloccato nell’elaborazione. Falliscono in modo diverso, e il simulatore mostra entrambi.
  • Stallo e ripresa — un consumer che smette di fare poll, viene espulso e rientra — ed esattamente quali partizioni si spostano quando lo fa.

Il rebalance è difficile da insegnare perché ha senso solo come sequenza: revocare, assegnare, riprendere. I diagrammi statici comprimono quella sequenza in una singola freccia. Qui puoi scorrerla e vedere la proprietà cambiare mano una partizione alla volta.

Perché è importante

La maggior parte degli incidenti di produzione con i consumer sono in realtà incidenti di rebalance — un deploy che sembra un’interruzione, un max.poll.interval.ms troppo breve per un batch lento, un assignor sticky che sposta silenziosamente più del previsto. Vedere il rebalance in movimento, alla velocità che scegli, è il modo più rapido di costruire l’intuizione che rende quegli incidenti ovvi col senno di poi.

Apri il simulatore, aggiungi ed elimina consumer, e osserva il gruppo riformarsi.