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 assegnazione —
range,roundrobin,stickyecooperative-stickyfianco 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.msmantiene la sua assegnazione e non innesca alcun rebalance, e cosa succede quando resta spento troppo a lungo. - I due timeout —
session.timeout.mscontromax.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.