Milyen Kafka interjúkérdésekre számíthatok?
Szerző: Aaron Cao · Frissítve

Négy szintre számíts: alapfogalmakra (témák, partíciók, offsetek, fogyasztói csoportok), kézbesítési garanciákra (legalább egyszeri és pontosan egyszeri kézbesítés, idempotens producerek), üzemeltetésre (replikáció, szinkronban lévő replikák, megőrzés, újraelosztás), valamint olyan tervezési helyzetekre, amelyekben meg kell határoznod a partíciók számát, kulcsokat kell választanod és hibákat kell kezelned. Az interjúztatók minden válasz mögött a miértre kíváncsiak.
Mely Kafka-alapfogalmakat ellenőrzik először az interjúztatók?
Már tudod, hogy a Kafka egy elosztott napló, és attól tartasz, hogy az interjúztató egy szinttel mélyebbre ás majd a napi használatnál. Ezek a kérdések pontosan erről szólnak, ezért ez a rész abban a sorrendben veszi végig a fogalmakat, ahogyan az interjúztatók általában haladnak, és minden kifejezésnél jelzi a várható további kérdést.
- Témák és partíciók. Egy téma partíciókra oszlik, amelyek mindegyike csak hozzáfűzhető, rendezett napló. További kérdés: miért újabb partíciók hozzáadásával skálázza a Kafka az írásokat, ahelyett, hogy egyetlen naplót gyorsítana fel?
- Offsetek. Egy fogyasztó pozíciója egy partícióban. További kérdés: ki tárolja a véglegesített offseteket, és mi történik, ha egy fogyasztó a véglegesítés előtt összeomlik?
- Fogyasztói csoportok. Egy csoport fogyasztói megosztják egymás között a téma partícióit; egy adott partíciót egyszerre legfeljebb egy fogyasztó kap meg a csoportból. További kérdés: mi történik az áteresztőképességgel, ha a csoportban több fogyasztó van, mint partíció?
- Brókerek és a vezérlő. A brókerek tárolják a partíciókat; a vezérlő kezeli a vezetőválasztást és a metaadatokat. További kérdés: mi változott, amikor a Kafka a metaadatkezelésben a ZooKeeper rendszerről KRaft rendszerre váltott?
- Producerek és kulcsok. A kulccsal rendelkező üzenet a kulcs hashelése alapján kiválasztott partícióra kerül; a kulcs nélküli üzenetek eloszlanak a partíciók között. További kérdés: melyik megoldás őrzi meg egy adott ügyfél eseményeinek sorrendjét?
Ezekre a működési mechanizmussal válaszolj, ne szlogennel. Annak kijelentése, hogy a partíciók párhuzamosságot biztosítanak, csak az alap; az a válasz juttat tovább, amely elmagyarázza, hogy sorrendiség kizárólag egy partíción belül létezik, ezért a kulcs határozza meg a sorrendiség tartományát.
Hogyan kérdeznek a kézbesítési garanciákról és a replikációról?
Ezen a szinten veszít pontokat a legtöbb jelölt, mert a fogalmak egyszerűek, a kompromisszumok viszont nem. Számíts arra, hogy az interjúztató megnevez egy garanciát, majd arra kér, hogy beállításokból építsd fel.
- Legfeljebb egyszeri és legalább egyszeri kézbesítés. Ha a feldolgozás előtt véglegesíted az offsetet, elveszhet egy üzenet; ha előbb feldolgozod, és csak utána véglegesíted, kétszer is feldolgozhatod. Mondd el, melyik sorrend milyen hibát tolerál, és a rendszered melyiket részesíti előnyben.
- Idempotens producerek és pontosan egyszeri kézbesítés. Az idempotens producer kiszűri az ismételt próbálkozásokból eredő duplikációkat egy partíción belül; a tranzakciók ezt több partícióra, valamint egy fogyasztás–átalakítás–előállítás folyamat fogyasztói offsetjeire is kiterjesztik. Készülj fel arra is, hogy elmondd, mire nem terjed ki a pontosan egyszeri működés: a tranzakción kívüli adatbázisba történő írás továbbra is a te problémád.
- acks, replikációs tényező és szinkronban lévő replikák. Az
acks=allmegvárja a szinkronban lévő replikák halmazát; amin.insync.replicasazt szabja meg, mennyire zsugorodhat ez a halmaz, mielőtt a rendszer megtagadja az írást. Az interjúztatók gyakran megkérdezik, mit áldozol fel itt a tartósságért: késleltetést és rendelkezésre állást brókerkiesés idején. - Megőrzés és tömörítés. Az idő- vagy méretalapú megőrzés törli a régi szegmenseket; a naplótömörítés kulcsonként megtartja a legutóbbi rekordot. További kérdés: melyik szolgál egy kulcs-érték tároló változásnaplójának alapjául, és miért?
- Újraelosztás. Amikor egy fogyasztó csatlakozik vagy távozik, a partíciókat újra kiosztják. További kérdés: hogyan hat egy hosszú újraelosztás a késleltetésre érzékeny szolgáltatásra, és hogyan enyhíti ezt a kooperatív újraelosztás és a statikus tagság?
Hasznos szokás, hogy minden megnevezett beállításnál elmondod, milyen hibát előz meg, és milyen költséggel jár. Ezzel a szerkezettel egyetlen lendülettel válaszolhatsz az eredeti és a további kérdésre.
Milyenek a tervezési és helyzetalapú kérdések?
A tapasztaltabb pozíciók interjúin a definíciókat helyzetfeladatok váltják fel, amelyekben az érvelésedet figyelik. Tipikus feladat: egy fizetési vállalat platformpozíciójára jelentkező backendfejlesztőnek olyan eseményfeldolgozó rendszert kell terveznie, amelyben egy adott számlához tartozó minden tranzakció feldolgozása sorrendben történik, az áteresztőképesség a forgalommal együtt nőhet, és egy brókerkiesés sem okozhat adatvesztést. Az erős válasz a számlaazonosító alapján kulcsolja az üzeneteket, hogy egy számla eseményei ugyanarra a partícióra kerüljenek; a várható csúcsterheléshez méretezi a partíciókat, növekedési tartalékkal; replikációt és acks=all beállítást használ a tartóssághoz; valamint elmagyarázza, hogyan véglegesítik a fogyasztók az offseteket, hogy összeomláskor a rendszer kihagyás helyett újrajátssza az eseményeket.
További visszatérő helyzetek: egy lemaradó fogyasztó, illetve a késés észlelésének és behozásának módja; egy téma, amelynek megbántad a partíciószámát, és hogy az újraparticionálás miért töri meg a kulcs szerinti sorrendet; egy hibás üzenet, amely összeomlasztja a fogyasztót, és az azt elkülönítő holtlevélminta; a producerek és fogyasztók közötti sémaváltozások, valamint a sémaregiszter előnyei. Az interjúztató nem egyetlen helyes architektúrát keres. Azt akarja hallani, hogy megnevezed a korlátozó feltételt, kiválasztasz egy mechanizmust, és hangosan kimondod a kompromisszumot.
Az interjú előtt hangosan gyakorold ezeket, ne csak olvasd őket. Az próbainterjú oldalon található gyakorlómód arra szolgál, hogy olyan AI-interjúztatóval próbáld el a helyzetalapú kérdéseket, amely további kérdésekkel mélyíti a beszélgetést; a szerepkörök és témák szerinti bővebb kérdésgyűjtemény pedig az interjúkérdések szerepkör és téma szerint oldalon érhető el.
Segíthet egy AI-interjúasszisztens a Kafka-kérdésekben?
Egy beszélgetéses interjú során igen, őszinte korlátok között. A SubcueAI natív macOS és Windows asztali alkalmazása rögzíti az interjúztató hangját és a mikrofonodat, majd rövid válaszjavaslatokat jelenít meg egy helyi átfedő felületen. Így amikor az interjúztató azt kérdezi, mi ellen véd a min.insync.replicas, a működési mechanizmus megjelenik a képernyődön, miközben a saját szavaiddal magyarázod el. A böngészőbővítmény ugyanezt teszi a böngészőlapról indított hívásoknál, és kizárólag a megbeszélés lapjának hangját rögzíti. Egyik sem ad botot a híváshoz, és egyik sem illeszt semmit a megbeszélés oldalába; a beállítás menetét az útmutató oldal ismerteti.
A korlátok fontosabbak az ígéreteknél. A felügyelt kódteszt, a képernyőrögzítés vagy a vállalat által felügyelt laptop nem támogatott, a megfigyelés alatt megírandó fogyasztót tartalmazó élő kódolási feladat pedig a saját munkád. Az asszisztens a fenti terminológiai és kompromisszumokról szóló kérdésekben a legerősebb, és az értékelési platformon begépelendő feladatokban a leggyengébb. Mielőtt támaszkodnál rá, add meg neki az önéletrajzodat, hogy a javaslatok az általad ténylegesen végzett Kafka-munkát tükrözzék; ezt a profilt az önéletrajz-készítő kezeli.