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 122.
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.