Comprensione della leadership di partizione
Ogni partizione ha un server nel cluster che funge da suo leader e altri server che fungono da follower. Tutte le richieste di produzione e consumo per la partizione sono gestite dal leader. I follower replicano i dati della partizione dal leader con l'obiettivo di tenere il passo con quest'ultimo. Se un follower sta tenendo il passo con un leader di una partizione, la sua replica è sincronizzata.
Quando viene inviato al leader della partizione, tale messaggio non è immediatamente disponibile per i consumatori. Il leader accoda il record per il messaggio alla partizione, assegnando ad esso il numero di offset successivo per tale partizione. Dopo che tutte le persone che seguono le repliche sincronizzate hanno replicato il record e hanno riconosciuto di aver scritto il record nelle loro repliche, il record è ora sottoposto a commit. Il messaggio è disponibile per i consumatori.
Se si verifica un malfunzionamento del leader per una partizione, uno dei follower con una replica sincronizzata subentra automaticamente al ruolo di leader della partizione. In pratica, ogni server è il leader per alcune partizioni e il follower per altre. Il processo di designazione di una nuova replica del leader è chiamato elezione della leadership. La leadership di partizioni è dinamica e cambia man mano che i server vanno e vengono.
Le applicazioni non devono eseguire delle azioni specifiche per gestire la modifica nella leadership di una partizione. La libreria client Kafka si riconnette automaticamente al nuovo leader, anche se la latenza aumenta mentre il cluster si stabilisce.