Jakich pytań rekrutacyjnych o Kafka mogę się spodziewać?

Autor: Aaron Cao · Zaktualizowano

Jakich pytań rekrutacyjnych o Kafka mogę się spodziewać?
Spodziewaj się czterech warstw: podstawowych pojęć (tematy, partycje, przesunięcia, grupy konsumentów), gwarancji dostarczenia (co najmniej raz, dokładnie raz, idempotentni producenci), operacji (replikacja, zsynchronizowane repliki, retencja, równoważenie) oraz scenariuszy projektowych, w których określasz liczbę partycji, wybierasz klucze i obsługujesz awarie. Rekruterzy sprawdzają uzasadnienie każdej odpowiedzi.

Spodziewaj się czterech warstw: podstawowych pojęć (tematy, partycje, przesunięcia, grupy konsumentów), gwarancji dostarczenia (co najmniej raz, dokładnie raz, idempotentni producenci), operacji (replikacja, zsynchronizowane repliki, retencja, równoważenie) oraz scenariuszy projektowych, w których określasz liczbę partycji, wybierasz klucze i obsługujesz awarie. Rekruterzy sprawdzają uzasadnienie każdej odpowiedzi.

Jakie podstawowe pojęcia Kafka sprawdza najpierw każdy rekruter?

Wiesz już, że Kafka jest rozproszonym dziennikiem, i obawiasz się, że rekruter zejdzie poziom głębiej niż zakres Twojego codziennego korzystania z niej. Właśnie do tego zmierzają te pytania, dlatego ta sekcja omawia terminologię w kolejności zwykle przyjmowanej przez rekruterów i wskazuje pytanie uzupełniające kryjące się za każdym pojęciem.

  • Tematy i partycje. Temat jest podzielony na partycje, z których każda jest uporządkowanym dziennikiem tylko do dopisywania. Pytanie uzupełniające: dlaczego Kafka skaluje zapisy przez dodawanie partycji, zamiast przyspieszać jeden dziennik?
  • Przesunięcia. Pozycja konsumenta w partycji. Pytanie uzupełniające: kto przechowuje zatwierdzone przesunięcia i co się dzieje, jeśli konsument ulegnie awarii przed zatwierdzeniem?
  • Grupy konsumentów. Konsumenci w grupie współdzielą partycje tematu, przy czym w danym momencie każda partycja przypada najwyżej jednemu konsumentowi w grupie. Pytanie uzupełniające: co dzieje się z przepustowością, jeśli grupa ma więcej konsumentów niż partycji?
  • Brokery i kontroler. Brokery przechowują partycje, a kontroler zarządza wyborem lidera i metadanymi. Pytanie uzupełniające: co zmieniło się, gdy Kafka przeniosła metadane z ZooKeeper do KRaft?
  • Producenci i klucze. Wiadomość z kluczem trafia do partycji wybranej przez haszowanie klucza, a wiadomość bez klucza jest rozdzielana między partycje. Pytanie uzupełniające: który z tych dwóch wariantów zachowuje kolejność zdarzeń jednego klienta?

Odpowiadaj, opisując mechanizm, a nie slogan. Stwierdzenie, że partycje zapewniają równoległość, to absolutna podstawa; dopiero wyjaśnienie, że kolejność istnieje wyłącznie wewnątrz partycji, a zatem klucz wyznacza domenę uporządkowania, jest odpowiedzią prowadzącą do następnego etapu.

Jak wyglądają pytania o gwarancje dostarczenia i replikację?

Na tym poziomie większość kandydatów traci punkty, ponieważ pojęcia są proste, ale kompromisy już nie. Spodziewaj się, że rekruter określi gwarancję i poprosi Cię o uzyskanie jej za pomocą ustawień.

  • Co najwyżej raz a co najmniej raz. Jeśli zatwierdzisz przesunięcie przed przetworzeniem, możesz utracić wiadomość; jeśli najpierw ją przetworzysz, a zatwierdzisz później, możesz przetworzyć ją dwukrotnie. Powiedz, jaką awarię toleruje każda kolejność i którą preferuje Twój system.
  • Idempotentni producenci i dokładnie raz. Idempotentny producent usuwa duplikaty ponownych prób w obrębie partycji; transakcje rozszerzają tę właściwość na wiele partycji oraz przesunięcia konsumentów w pętli konsumuj–przekształć–wyprodukuj. Przygotuj się na wyjaśnienie, czego gwarancja dokładnie raz nie obejmuje: zapis w dalszej bazie danych poza transakcją nadal pozostaje Twoim problemem.
  • acks, współczynnik replikacji i zsynchronizowane repliki. acks=all czeka na zestaw zsynchronizowanych replik; min.insync.replicas określa, jak bardzo ten zestaw może się zmniejszyć, zanim zapisy zostaną odrzucone. Rekruterzy często pytają, co poświęcasz tutaj na rzecz trwałości: opóźnienie i dostępność podczas utraty brokera.
  • Retencja i kompaktowanie. Retencja oparta na czasie lub rozmiarze usuwa stare segmenty; kompaktowanie dziennika zachowuje najnowszy rekord dla każdego klucza. Pytanie uzupełniające: które rozwiązanie stanowi podstawę dziennika zmian dla magazynu klucz-wartość i dlaczego?
  • Równoważenie. Gdy konsument dołącza lub odchodzi, partycje są przydzielane ponownie. Pytanie uzupełniające: jak długie równoważenie wpływa na usługę wrażliwą na opóźnienia oraz jak równoważenie kooperacyjne i członkostwo statyczne ograniczają ten problem?

Przydatny nawyk: przy każdym wymienionym ustawieniu powiedz, jakiej awarii zapobiega i jaki koszt wprowadza. Taka struktura pozwala jednym ciągiem odpowiedzieć na pytanie główne i uzupełniające.

Jak wyglądają pytania projektowe i scenariuszowe?

W rekrutacji na stanowiska wyższego szczebla definicje zastępuje się scenariuszem i obserwuje tok Twojego rozumowania. Typowy przykład: inżynier backendu ubiegający się o stanowisko platformowe w firmie płatniczej ma zaprojektować potok zdarzeń, w którym każda transakcja dotycząca jednego konta musi być przetwarzana w kolejności, przepustowość musi rosnąć wraz z ruchem, a awaria brokera nie może powodować utraty danych. Dobra odpowiedź przewiduje przypisywanie wiadomości kluczem identyfikatora konta, aby zdarzenia jednego konta trafiały do wspólnej partycji, dobór liczby partycji do oczekiwanego szczytowego obciążenia z zapasem na rozwój, ustawienie replikacji i acks=all dla trwałości oraz wyjaśnienie sposobu zatwierdzania przesunięć przez konsumentów, tak aby awaria powodowała ponowne odtworzenie, a nie pominięcie danych.

Inne powtarzające się scenariusze to: konsument pozostający w tyle oraz sposób wykrywania opóźnienia i nadrabiania zaległości; temat, którego liczby partycji żałujesz, oraz powód, dla którego ponowne partycjonowanie zaburza kolejność kluczy; szkodliwa wiadomość powodująca awarię konsumenta i wzorzec kolejki wiadomości odrzuconych, który ją izoluje; zmiany schematu między producentami i konsumentami oraz korzyści zapewniane przez rejestr schematów. Rekruter nie szuka jednej właściwej architektury. Chce usłyszeć, jak nazywasz ograniczenie, wybierasz mechanizm i wyraźnie wskazujesz kompromis.

Przed rozmową ćwicz te odpowiedzi na głos, zamiast jedynie je czytać. Tryb ćwiczeń ze sztucznym rekruterem, który zadaje pytania uzupełniające, jest dostępny na stronie próbnej rozmowy rekrutacyjnej, a szerszy zestaw baz według stanowiska i tematu znajduje się w sekcji pytań rekrutacyjnych według stanowiska i tematu.

Czy asystent AI może pomóc przy pytaniach o Kafka?

Podczas rozmowy — tak, w uczciwie określonych granicach. Natywna aplikacja komputerowa SubcueAI na macOS i Windows przechwytuje dźwięk rekrutera oraz Twój mikrofon i wyświetla krótkie sugestie odpowiedzi w lokalnej nakładce, więc gdy rekruter pyta, przed czym chroni min.insync.replicas, mechanizm pojawia się na ekranie, a Ty wyjaśniasz go własnymi słowami. Rozszerzenie przeglądarki robi to samo podczas rozmów w karcie przeglądarki, przechwytując wyłącznie dźwięk z karty spotkania. Żadne z tych rozwiązań nie dodaje bota do rozmowy ani nie wprowadza niczego na stronę spotkania; instrukcję konfiguracji znajdziesz na stronie samouczka.

Ograniczenia są ważniejsze niż obietnice. Nadzorowany test kodowania, nagrywany ekran lub laptop zarządzany przez firmę znajdują się poza zakresem zastosowania, a ćwiczenie z kodowania na żywo, podczas którego musisz zaimplementować konsumenta pod obserwacją, jest Twoją samodzielną pracą. Asystent najlepiej radzi sobie z powyższymi pytaniami o terminologię i kompromisy, a najsłabiej ze wszystkim, co wpisuje się na platformie egzaminacyjnej. Zanim na nim polegniesz, przekaż mu swoje CV, aby sugestie odzwierciedlały faktyczną pracę z Kafka; ten profil znajduje się w kreatorze CV.

FAQ

Dlaczego Kafka może gwarantować kolejność tylko w obrębie partycji?

Każda partycja jest pojedynczym uporządkowanym dziennikiem zapisywanym przez jednego lidera, natomiast różne partycje znajdują się na różnych brokerach i są konsumowane niezależnie. Uporządkowanie między partycjami wymagałoby koordynacji, która wyeliminowałaby równoległość będącą celem ich istnienia.

Czym różni się gwarancja co najmniej raz od dokładnie raz w Kafka?

Co najmniej raz oznacza, że po awarii wiadomość może zostać dostarczona ponownie, dlatego konsumenci muszą tolerować duplikaty. Gwarancja dokładnie raz łączy idempotentnych producentów z transakcjami, dzięki czemu ponowne próby i zatwierdzanie przesunięć są atomowe wewnątrz Kafka; skutki poza Kafka nadal wymagają własnej idempotencji.

Ilu konsumentów powinna mieć grupa konsumentów?

Przydatny jest najwyżej jeden aktywny konsument na partycję; dodatkowi konsumenci pozostają bezczynni. Mniejsza liczba konsumentów niż partycji nie stanowi problemu — każdy po prostu odczytuje kilka partycji. Wybór liczby partycji wyznacza zatem górną granicę równoległości konsumentów.

Co się dzieje, gdy broker Kafka ulegnie awarii?

Partycje, którym przewodził, przełączają się na zsynchronizowaną replikę na innym brokerze, wybraną przez kontroler. Przy skonfigurowanej replikacji i acks=all zatwierdzone zapisy przetrwają, a producent ponowi zapisy niezatwierdzone.

Czy SubcueAI może pomóc podczas testu kodowania z Kafka?

Nie. Nadzorowane lub nagrywane testy są poza zakresem jego zastosowania, a uczciwe użycie dotyczy rozmowy rekrutacyjnej, podczas której wyjaśniasz pojęcia i kompromisy. Tryb próbnej rozmowy służy do przećwiczenia obu tych elementów przed właściwą rozmową.

Powiązane pytania

← Więcej o Pytania rekrutacyjne według roli i tematu