Le 14 migliori domande e risposte all'intervista su Kafka (2025)
Ecco le domande e le risposte all'intervista di Kafka per le matricole e i candidati esperti per ottenere il lavoro dei loro sogni.
1) Menziona cos'è Apache Kafka?
Apache Kafka è un sistema di messaggistica di pubblicazione-sottoscrizione sviluppato da Apache scritto in Scala. È un servizio di registro distribuito, partizionato e replicato.
Download gratuito del PDF: domande e risposte all'intervista a Kafka
2) Menzionare qual è il metodo tradizionale di trasferimento dei messaggi?
Il metodo tradizionale di trasferimento dei messaggi comprende due metodi
- In coda: In una coda, un pool di consumatori può leggere il messaggio dal server e ogni messaggio va a uno di essi
- Pubblica-Sottoscrivi: In questo modello, i messaggi vengono trasmessi a tutti i consumatori
Kafka si rivolge all'astrazione del singolo consumatore che ha generalizzato entrambi i precedenti: il gruppo di consumatori.
3) Quali sono i vantaggi di Apache Kafka rispetto alla tecnica tradizionale?
Apache Kafka presenta i seguenti vantaggi rispetto alla tradizionale tecnica di messaggistica
- Veloce: Un singolo broker Kafka può servire migliaia di clienti gestendo megabyte di letture e scritture al secondo
- Scalabile: I dati vengono partizionati e ottimizzati su un cluster di macchine per consentire dati più grandi
- Durevole: I messaggi sono persistenti e vengono replicati all'interno del cluster per prevenire la perdita di dati
- Distribuito per design: Fornisce garanzie di tolleranza agli errori e durata
4) Menziona qual è il significato di broker in Kafka?
Nel cluster Kafka, il termine broker viene utilizzato per fare riferimento al server.
5) Indicare qual è la dimensione massima del messaggio che il server Kafka può ricevere?
La dimensione massima del messaggio che il server Kafka può ricevere è 1000000 byte.
6) Spiegare cos'è Zookeeper in Kafka? Possiamo usare Kafka senza Zookeeper?
Zookeeper è un servizio di coordinamento open source ad alte prestazioni utilizzato per applicazioni distribuite adattate da Kafka. No, non è possibile bypassare Zookeeper e collegarsi direttamente al broker Kafka. Una volta che Zookeeper è inattivo, non può soddisfare la richiesta del cliente.
- Zookeeper viene fondamentalmente utilizzato per comunicare tra diversi nodi in un cluster
- In Kafka viene utilizzato per eseguire il commit dell'offset, quindi se il nodo fallisce in ogni caso può essere recuperato dall'offset precedentemente impegnato
- Oltre a questo svolge anche altre attività come il rilevamento dei leader, la sincronizzazione distribuita, la gestione della configurazione, identifica quando un nuovo nodo lascia o si unisce, il cluster, lo stato del nodo in tempo reale, ecc.
7) Spiegare come il messaggio viene consumato dal consumatore in Kafka?
Il trasferimento dei messaggi in Kafka viene effettuato utilizzando sendfile API. Abilita il trasferimento di byte dal socket al disco tramite copie salvaspazio del kernel e richiama l'utente del kernel al kernel.
8) Spiegare come è possibile migliorare il throughput di un consumatore remoto?
Se il consumatore si trova in un data center diverso dal broker, potrebbe essere necessario ottimizzare la dimensione del buffer del socket per ammortizzare la lunga latenza di rete.
9) Spiegare come è possibile ricevere esattamente una volta la messaggistica da Kafka durante la produzione dei dati?
Durante la produzione dei dati, per ricevere esattamente una volta la messaggistica da Kafka è necessario seguire due cose evitando duplicati durante il consumo dei dati e evitando duplicazioni durante la produzione dei dati. Ecco i due modi per ottenere esattamente una semantica durante la produzione dei dati:
- Avrai a disposizione un singolo scrittore per partizione, ogni volta che ricevi un errore di rete controlla l'ultimo messaggio in quella partizione per vedere se l'ultima scrittura è riuscita
- Nel messaggio includi una chiave primaria (UUID o qualcosa del genere) e deduplica sul consumatore
10) Spiegare come è possibile ridurre il tasso di abbandono dell'ISR? Quando il broker lascia l'ISR?
ISR è un insieme di repliche di messaggi completamente sincronizzati con i leader, in altre parole ISR ha tutti i messaggi impegnati. L'ISR dovrebbe sempre includere tutte le repliche finché non si verifica un errore reale. Una replica verrà eliminata dall'ISR se si discosta dal leader.
11) Perché in Kafka è richiesta la replica?
La replica del messaggio in Kafka garantisce che qualsiasi messaggio pubblicato non venga perso e possa essere utilizzato in caso di errore della macchina, errore del programma o aggiornamenti software più comuni.
12) Cosa indica se la replica rimane fuori dall'ISR per molto tempo?
Se una replica rimane fuori dall'ISR per un periodo prolungato, indica che il follower non è in grado di recuperare i dati alla stessa velocità dei dati accumulati sul leader.
13) Menziona cosa succede se la replica preferita non è nell'ISR?
Se la replica preferita non è nell'ISR, il controller non verrà spostato comando alla replica preferita.
14) È possibile ottenere l'offset del messaggio dopo la produzione?
Non puoi farlo da una classe che si comporta come un produttore come nella maggior parte dei sistemi di coda, il suo ruolo è attivare e dimenticare i messaggi. Il broker eseguirà il resto del lavoro, ad esempio la gestione appropriata dei metadati con ID, offset, ecc. In qualità di consumatore del messaggio, puoi ottenere l'offset da un broker Kafka. Se guardi nel Consumatore semplice class, noterai che viene recuperato MultiFetchResponse oggetti che includono offset come elenco. In aggiunta a ciò, quando ripeti il messaggio Kafka, avrai MessaggioEOffset oggetti che includono sia l'offset che il messaggio inviato.
Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)