Milyen Kafka interjúkérdésekre számíthatok?

Szerző: Aaron Cao · Frissítve

Milyen Kafka interjúkérdésekre számíthatok?
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.

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=all megvárja a szinkronban lévő replikák halmazát; a min.insync.replicas azt 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.

GYIK

Miért csak partíción belül tudja garantálni a Kafka a sorrendet?

Minden partíció egyetlen, rendezett napló, amelybe egy vezető ír, míg a különböző partíciók különböző brókereken találhatók, és feldolgozásuk egymástól független. A partíciókon átívelő sorrend olyan koordinációt igényelne, amely megszüntetné a partíciók által biztosított párhuzamosságot.

Mi a különbség a legalább egyszeri és a pontosan egyszeri kézbesítés között a Kafka rendszerében?

A legalább egyszeri kézbesítés azt jelenti, hogy hiba után az üzenet ismét megérkezhet, ezért a fogyasztóknak kezelniük kell a duplikációkat. A pontosan egyszeri kézbesítés idempotens producereket és tranzakciókat kombinál, így az ismételt próbálkozások és az offsetek véglegesítése atomi művelet a Kafka rendszerén belül; a Kafka rendszerén kívüli hatásokhoz továbbra is külön idempotencia szükséges.

Hány fogyasztó legyen egy fogyasztói csoportban?

Partíciónként legfeljebb egy aktív fogyasztónak van haszna; a további fogyasztók tétlenül várakoznak. Nem gond, ha a partícióknál kevesebb fogyasztó van, mert mindegyik több partíciót olvas. A partíciók száma ezért a fogyasztói párhuzamosság felső határát is meghatározza.

Mi történik, ha meghibásodik egy Kafka-bróker?

Az általa vezetett partíciók átállnak egy másik brókeren található, szinkronban lévő replikára, amelyet a vezérlő választ ki. Beállított replikáció és acks=all mellett a visszaigazolt írások megmaradnak; a vissza nem igazolt írásokat a producer újrapróbálja.

Segíthet a SubcueAI egy Kafka kódolási felmérés során?

Nem. A felügyelt vagy rögzített felmérések kívül esnek a használati körén; tisztességesen olyan beszélgetéses interjúban használható, amelyben fogalmakat és kompromisszumokat magyarázol el. A valódi hívás előtt mindkettőt a próbainterjú módban gyakorolhatod.

Kapcsolódó kérdések

← Több erről: Interjúkérdések szerep és téma szerint