Vilka Kafka-intervjufrågor bör jag förvänta mig?

Av Aaron Cao · Uppdaterad

Vilka Kafka-intervjufrågor bör jag förvänta mig?
Förvänta dig fyra nivåer: grundbegrepp (ämnen, partitioner, offsetvärden, konsumentgrupper), leveransgarantier (minst en gång, exakt en gång, idempotenta producenter), drift (replikering, synkroniserade repliker, lagringstid, ombalansering) och designscenarier där du dimensionerar partitioner, väljer nycklar och hanterar fel. Intervjuare undersöker varför bakom varje svar.

Förvänta dig fyra nivåer: grundbegrepp (ämnen, partitioner, offsetvärden, konsumentgrupper), leveransgarantier (minst en gång, exakt en gång, idempotenta producenter), drift (replikering, synkroniserade repliker, lagringstid, ombalansering) och designscenarier där du dimensionerar partitioner, väljer nycklar och hanterar fel. Intervjuare undersöker varför bakom varje svar.

Vilka grundläggande Kafka-begrepp kontrollerar alla intervjuare först?

Du vet redan att Kafka är en distribuerad logg och oroar dig för att intervjuaren ska gå en nivå djupare än din dagliga användning. Det är precis dit de här frågorna leder, så det här avsnittet går igenom begreppen i den ordning intervjuare vanligtvis tar upp dem och visar följdfrågan bakom varje term.

  • Ämnen och partitioner. Ett ämne delas upp i partitioner, som var och en är en ordnad logg där data endast läggs till. Följdfråga: varför skalar Kafka skrivningar genom att lägga till partitioner i stället för att göra en enda logg snabbare?
  • Offsetvärden. En konsuments position i en partition. Följdfråga: vem lagrar bekräftade offsetvärden, och vad händer om en konsument kraschar innan den bekräftar?
  • Konsumentgrupper. Konsumenter i en grupp delar på ett ämnes partitioner, där en partition tilldelas högst en konsument i gruppen åt gången. Följdfråga: vad händer med genomströmningen om gruppen har fler konsumenter än partitioner?
  • Broker-servrar och kontrollern. Broker-servrar lagrar partitioner; kontrollern hanterar val av ledare och metadata. Följdfråga: vad förändrades när Kafka flyttade metadata från ZooKeeper till KRaft?
  • Producenter och nycklar. Ett meddelande med en nyckel hamnar i en partition som väljs genom hashning av nyckeln; ett meddelande utan nyckel sprids över partitionerna. Följdfråga: vilket av dessa två alternativ bevarar ordningen för en kunds händelser?

Besvara detta med mekanismen, inte slagordet. Att säga att partitioner möjliggör parallellism är ett minimikrav; att förklara att ordning bara finns inom en partition och att nyckeln därför avgör ordningsdomänen är svaret som tar dig till nästa omgång.

Hur brukar frågor om leveransgarantier och replikering ställas?

Det är på den här nivån de flesta kandidater tappar poäng, eftersom orden är enkla men avvägningarna inte är det. Räkna med att intervjuaren anger en garanti och ber dig skapa den med hjälp av inställningar.

  • Högst en gång kontra minst en gång. Bekräfta offsetvärdet före bearbetning så kan du förlora ett meddelande; bearbeta först och bekräfta efteråt så kan du behandla det två gånger. Förklara vilket fel varje ordning tolererar och vilken ditt system föredrar.
  • Idempotenta producenter och exakt en gång. En idempotent producent deduplicerar återförsök inom en partition; transaktioner utökar detta över partitioner och till konsumenternas offsetvärden i en slinga som konsumerar, omvandlar och producerar. Var beredd att säga vad exakt en gång inte omfattar: en skrivning till en efterföljande databas utanför transaktionen är fortfarande ditt problem.
  • acks, replikeringsfaktor och synkroniserade repliker. acks=all väntar på den synkroniserade replikuppsättningen; min.insync.replicas anger hur liten uppsättningen får bli innan skrivningar nekas. Intervjuare frågar ofta vad du offrar för beständighet här: latens och tillgänglighet när en broker-server förloras.
  • Lagringstid och komprimering. Tids- eller storleksbaserad lagring tar bort gamla segment; loggkomprimering behåller den senaste posten per nyckel. Följdfråga: vilket alternativ stöder en ändringslogg för ett nyckel-värde-lager, och varför?
  • Ombalansering. När en konsument ansluter eller lämnar omfördelas partitionerna. Följdfråga: vad gör en lång ombalansering med en latenskänslig tjänst, och hur minskar samarbetsbaserad ombalansering och statiskt medlemskap problemet?

En användbar vana: för varje inställning du nämner, beskriv vilket fel den förhindrar och vilken kostnad den medför. Den strukturen besvarar frågan och följdfrågan i ett enda svep.

Hur ser design- och scenariofrågorna ut?

I intervjuer för seniora roller ersätts definitioner med ett scenario där ditt resonemang granskas. En typisk uppgift: en backendutvecklare som intervjuas för en plattformsroll på ett betalningsföretag ombeds utforma en händelsepipeline där varje transaktion för ett konto måste behandlas i ordning, genomströmningen måste växa med trafiken och ett avbrott hos en broker-server inte får orsaka dataförlust. Ett starkt svar använder konto-id som meddelandenyckel så att ett kontos händelser delar partition, dimensionerar partitionerna för den förväntade belastningstoppen med marginal för tillväxt, ställer in replikering och acks=all för beständighet samt förklarar hur konsumenter bekräftar offsetvärden så att en krasch leder till återuppspelning i stället för överhoppning.

Andra återkommande scenarier: en konsument som hamnar efter samt hur du upptäcker eftersläpningen och kommer ikapp; ett ämne vars antal partitioner du ångrar och varför ompartitionering bryter nyckelordningen; ett skadligt meddelande som kraschar konsumenten och mönstret med en kö för misslyckade meddelanden som isolerar det; schemaändringar mellan producenter och konsumenter samt nyttan med ett schemaregister. Intervjuaren söker inte en enda korrekt arkitektur. De vill att du anger begränsningen, väljer en mekanism och uttalar avvägningen högt.

Öva på dessa högt före intervjun i stället för att bara läsa dem. Att repetera scenariofrågor med en AI-intervjuare som pressar dig med följdfrågor är vad övningsläget på sidan för simulerade intervjuer är till för, och den bredare uppsättningen frågebanker för roller och ämnen finns under intervjufrågor efter roll och ämne.

Kan en AI-intervjuassistent hjälpa till med Kafka-frågor?

I en samtalsbaserad intervju är svaret ja, inom ärliga gränser. SubcueAIs inbyggda skrivbordsapp för macOS och Windows fångar intervjuarens ljud och din mikrofon samt visar korta svarsförslag i ett lokalt överlägg. När intervjuaren frågar vad min.insync.replicas skyddar mot finns mekanismen därför på skärmen medan du förklarar den med egna ord. Webbläsartillägget gör samma sak för samtal i webbläsarflikar och fångar endast mötesflikens ljud. Inget av dem lägger till en bot i samtalet eller för in något på mötessidan; installationsguiden finns på sidan handledning.

Begränsningarna är viktigare än säljpresentationen. Ett övervakat kodtest, en inspelad skärm eller en företagsadministrerad bärbar dator ligger utanför användningsområdet, och en livekodningsövning där du måste implementera en konsument under observation är ditt eget arbete. Assistenten är starkast för frågorna ovan om terminologi och avvägningar och svagast för allt som skrivs in på en utvärderingsplattform. Innan du förlitar dig på den bör du ge den ditt CV så att förslagen speglar det Kafka-arbete du faktiskt har utfört; på sidan CV-byggare finns den profilen.

FAQ

Varför kan Kafka bara garantera ordning inom en partition?

Varje partition är en enda ordnad logg som skrivs av en ledare, medan olika partitioner finns på olika broker-servrar och konsumeras oberoende av varandra. Ordning mellan partitioner skulle kräva samordning som tar bort den parallellism som partitionerna ska ge.

Vad är skillnaden mellan minst en gång och exakt en gång i Kafka?

Minst en gång innebär att ett meddelande kan levereras igen efter ett fel, så konsumenterna måste tåla dubbletter. Exakt en gång kombinerar idempotenta producenter med transaktioner så att återförsök och bekräftelser av offsetvärden är atomära inom Kafka; effekter utanför Kafka behöver fortfarande egen idempotens.

Hur många konsumenter bör en konsumentgrupp ha?

Högst en aktiv konsument per partition är användbar; extra konsumenter förblir inaktiva. Färre konsumenter än partitioner går bra, eftersom varje konsument helt enkelt läser flera partitioner. Valet av antal partitioner sätter därför taket för konsumenternas parallellism.

Vad händer när en Kafka-broker slutar fungera?

Partitioner som den ledde växlar över till en synkroniserad replik på en annan broker-server, vald av kontrollern. Med konfigurerad replikering och acks=all överlever bekräftade skrivningar; producenten försöker skicka obekräftade skrivningar igen.

Kan SubcueAI hjälpa till under en kodutvärdering om Kafka?

Nej. Övervakade eller inspelade utvärderingar ligger utanför dess användningsområde, och den ärliga användningen är en samtalsbaserad intervju där du förklarar begrepp och avvägningar. Läget för simulerade intervjuer är rätt plats att öva på båda före det riktiga samtalet.

Relaterade frågor

← Mer om Intervjufrågor efter roll & ämne