Quali domande su Kafka devo aspettarmi a un colloquio?

Di Aaron Cao · Aggiornato il

Quali domande su Kafka devo aspettarmi a un colloquio?
Aspettati quattro livelli: concetti fondamentali (topic, partizioni, offset, gruppi di consumer), garanzie di consegna (almeno una volta, esattamente una volta, producer idempotenti), operazioni (replica, repliche sincronizzate, conservazione, ribilanciamento) e scenari di progettazione in cui dimensionare le partizioni, scegliere le chiavi e gestire i guasti. Gli intervistatori approfondiscono il perché di ogni risposta.

Aspettati quattro livelli: concetti fondamentali (topic, partizioni, offset, gruppi di consumer), garanzie di consegna (almeno una volta, esattamente una volta, producer idempotenti), operazioni (replica, repliche sincronizzate, conservazione, ribilanciamento) e scenari di progettazione in cui dimensionare le partizioni, scegliere le chiavi e gestire i guasti. Gli intervistatori approfondiscono il perché di ogni risposta.

Quali concetti fondamentali di Kafka verifica subito ogni intervistatore?

Sai già che Kafka è un log distribuito e temi che l'intervistatore approfondisca oltre ciò che usi ogni giorno. È proprio qui che arrivano queste domande: questa sezione illustra quindi il vocabolario nell'ordine generalmente seguito dagli intervistatori e segnala la domanda successiva nascosta dietro ogni termine.

  • Topic e partizioni. Un topic è suddiviso in partizioni, ciascuna delle quali è un log ordinato e di sola aggiunta. Domanda successiva: perché Kafka aumenta la scalabilità delle scritture aggiungendo partizioni, anziché rendere più veloce un singolo log?
  • Offset. La posizione di un consumer in una partizione. Domanda successiva: chi memorizza gli offset confermati e cosa accade se un consumer si arresta prima di confermarli?
  • Gruppi di consumer. I consumer di un gruppo si dividono le partizioni di un topic; in ogni momento, una partizione è assegnata al massimo a un consumer del gruppo. Domanda successiva: cosa accade alla capacità di elaborazione se il gruppo contiene più consumer che partizioni?
  • Broker e controller. I broker memorizzano le partizioni; il controller gestisce l'elezione dei leader e i metadati. Domanda successiva: cosa è cambiato quando Kafka ha trasferito i metadati da ZooKeeper a KRaft?
  • Producer e chiavi. Un messaggio con una chiave viene inserito in una partizione scelta applicando una funzione hash alla chiave; un messaggio senza chiave viene distribuito tra le partizioni. Domanda successiva: quale delle due modalità mantiene l'ordine degli eventi di uno stesso cliente?

Rispondi spiegando il meccanismo, non con uno slogan. Dire che le partizioni consentono il parallelismo è solo il requisito minimo; spiegare che l'ordine esiste esclusivamente all'interno di una partizione e che, di conseguenza, la chiave determina l'ambito dell'ordinamento è la risposta che ti porta al turno successivo.

Come vengono poste le domande sulle garanzie di consegna e sulla replica?

È a questo livello che la maggior parte dei candidati perde punti, perché le definizioni sono semplici, ma i compromessi non lo sono. Aspettati che l'intervistatore indichi una garanzia e ti chieda di realizzarla tramite la configurazione.

  • Al massimo una volta e almeno una volta. Se confermi l'offset prima dell'elaborazione, puoi perdere un messaggio; se elabori prima e confermi dopo, puoi elaborarlo due volte. Spiega quale guasto tollera ciascun ordine e quale preferisce il tuo sistema.
  • Producer idempotenti ed esecuzione esattamente una volta. Un producer idempotente elimina i duplicati causati dai tentativi ripetuti all'interno di una partizione; le transazioni estendono questa garanzia a più partizioni e agli offset dei consumer in un ciclo di consumo, trasformazione e produzione. Preparati a spiegare cosa non copre l'esecuzione esattamente una volta: una scrittura su un database a valle, esterno alla transazione, resta un problema da risolvere.
  • acks, fattore di replica e repliche sincronizzate. acks=all attende l'insieme delle repliche sincronizzate; min.insync.replicas stabilisce fino a che punto tale insieme può ridursi prima che le scritture vengano rifiutate. Gli intervistatori chiedono spesso cosa sacrifichi in cambio della durabilità: latenza e disponibilità durante la perdita di un broker.
  • Conservazione e compattazione. La conservazione basata sul tempo o sulle dimensioni elimina i segmenti meno recenti; la compattazione del log mantiene il record più recente per ogni chiave. Domanda successiva: quale delle due supporta il changelog di un archivio chiave-valore e perché?
  • Ribilanciamento. Quando un consumer entra o esce, le partizioni vengono riassegnate. Domanda successiva: che effetto ha un lungo ribilanciamento su un servizio sensibile alla latenza e in che modo il ribilanciamento cooperativo e l'appartenenza statica riducono il problema?

Un'abitudine utile: per ogni impostazione che citi, indica il guasto che evita e il costo che comporta. Questa struttura risponde alla domanda e al successivo approfondimento in un unico passaggio.

Come sono le domande di progettazione e quelle basate su scenari?

Nei colloqui per ruoli senior, le definizioni lasciano spazio a uno scenario in cui viene osservato il tuo ragionamento. Un esempio tipico: a un backend engineer candidato per un ruolo di piattaforma presso un'azienda di pagamenti viene chiesto di progettare una pipeline di eventi in cui tutte le transazioni di uno stesso conto siano elaborate in ordine, la capacità di elaborazione cresca insieme al traffico e l'interruzione di un broker non provochi perdite di dati. Una risposta solida assegna ai messaggi la chiave dell'identificativo del conto, affinché gli eventi dello stesso conto condividano una partizione; dimensiona le partizioni per il picco previsto, lasciando margine per la crescita; configura la replica e acks=all per la durabilità; infine, spiega come i consumer confermano gli offset affinché un arresto provochi la ripetizione anziché il salto dei messaggi.

Altri scenari ricorrenti: un consumer che resta indietro e come rilevarne il ritardo e recuperarlo; un topic con un numero di partizioni di cui ti penti e il motivo per cui ripartizionarlo interrompe l'ordinamento per chiave; un messaggio anomalo che manda in arresto il consumer e il modello dead-letter che lo isola; modifiche allo schema tra producer e consumer e i vantaggi offerti da un registro degli schemi. L'intervistatore non cerca un'unica architettura corretta. Vuole che tu identifichi il vincolo, scelga un meccanismo e dichiari esplicitamente il compromesso.

Esercitati a rispondere ad alta voce prima del colloquio, anziché limitarti a leggere. La modalità di esercitazione nella pagina del colloquio simulato serve proprio a provare domande basate su scenari con un intervistatore AI che insiste sugli approfondimenti; la raccolta più ampia organizzata per ruoli e argomenti è disponibile in domande di colloquio per ruolo e argomento.

Un assistente AI può essere utile per le domande su Kafka?

In un colloquio conversazionale sì, entro limiti corretti. L'app desktop nativa di SubcueAI per macOS e Windows acquisisce l'audio dell'intervistatore e del tuo microfono e mostra brevi suggerimenti per la risposta in una sovrimpressione locale. Così, quando l'intervistatore chiede da cosa protegga min.insync.replicas, il meccanismo compare sullo schermo mentre lo spieghi con parole tue. L'estensione del browser fa lo stesso per le chiamate in una scheda del browser, acquisendo esclusivamente l'audio della scheda della riunione. Nessuna delle due aggiunge un bot alla chiamata o inserisce elementi nella pagina della riunione; la procedura di configurazione è disponibile nella pagina del tutorial.

I limiti contano più della presentazione commerciale. Un test di programmazione sorvegliato, uno schermo registrato o un portatile gestito dall'azienda non rientrano nell'ambito di utilizzo; inoltre, un esercizio di programmazione dal vivo in cui devi implementare un consumer sotto osservazione deve essere svolto autonomamente. L'assistente è particolarmente efficace per le domande sulla terminologia e sui compromessi descritte sopra, ma meno adatto a qualsiasi attività da svolgere in una piattaforma di valutazione. Prima di affidarti all'assistente, forniscigli il tuo curriculum, affinché i suggerimenti riflettano il lavoro su Kafka che hai effettivamente svolto; il profilo viene gestito nello strumento per creare il curriculum.

FAQ

Perché Kafka può garantire l'ordine solo all'interno di una partizione?

Ogni partizione è un singolo log ordinato, scritto da un solo leader, mentre partizioni diverse risiedono su broker diversi e vengono consumate in modo indipendente. L'ordinamento tra partizioni richiederebbe un coordinamento che eliminerebbe il parallelismo per cui le partizioni esistono.

Qual è la differenza tra almeno una volta ed esattamente una volta in Kafka?

Almeno una volta significa che, dopo un guasto, un messaggio può essere consegnato nuovamente, quindi i consumer devono tollerare i duplicati. Esattamente una volta combina producer idempotenti e transazioni, rendendo atomici i tentativi ripetuti e le conferme degli offset all'interno di Kafka; gli effetti esterni a Kafka richiedono comunque una propria forma di idempotenza.

Quanti consumer dovrebbe avere un gruppo di consumer?

È utile avere al massimo un consumer attivo per partizione; quelli in più restano inattivi. Un numero di consumer inferiore alle partizioni non crea problemi: ciascuno legge semplicemente più partizioni. La scelta del numero di partizioni determina quindi il limite massimo del parallelismo dei consumer.

Cosa accade quando un broker Kafka si guasta?

Le partizioni di cui era leader passano a una replica sincronizzata su un altro broker, scelta dal controller. Con la replica configurata e acks=all, le scritture confermate sopravvivono; quelle non confermate vengono ritentate dal producer.

SubcueAI può aiutare durante una valutazione di programmazione su Kafka?

No. Le valutazioni sorvegliate o registrate non rientrano nel suo ambito; l'uso corretto è durante un colloquio conversazionale in cui spieghi concetti e compromessi. La modalità di colloquio simulato è il luogo in cui esercitarsi su entrambi prima della chiamata reale.

Domande correlate

← Altro su Domande da colloquio per ruolo e argomento