Top 11 pytań i odpowiedzi na wywiad z Kafką [dla nowicjuszy]
Opublikowany: 2021-02-22W ciągu dziewięciu lat od premiery w 2011 roku Kafka ugruntowała swoją pozycję jako jedno z najcenniejszych narzędzi do przetwarzania danych w sferze technologicznej. Airbnb, Goldman Sachs, Netflix, LinkedIn, Microsoft, Target i The New York Times to tylko kilka firm zbudowanych na Kafce.
Ale czym jest Kafka? Prosta odpowiedź brzmiałaby — właśnie to pomaga kierowcy Ubera dopasować się do potencjalnego pasażera lub pomóc LinkedIn w wykonywaniu milionów usług analitycznych lub przewidywalnych w czasie rzeczywistym. Krótko mówiąc, Apache jest wysoce skalowalną, otwartą, odporną na błędy platformą strumieniowania zdarzeń rozproszonych, stworzoną przez LinkedIn w 2011 roku. Korzysta z dziennika zatwierdzania, który można subskrybować, a następnie można go opublikować w wielu aplikacjach do przesyłania strumieniowego.
Niskie opóźnienia, integracja danych i wysoka przepustowość przyczyniają się do jego rosnącej popularności, tak bardzo, że wiedza na temat Kafki jest uważana za wspaniały dodatek do CV kandydata, a specjaliści z certyfikowanymi kwalifikacjami są dziś bardzo poszukiwani. Spowodowało to również wzrost możliwości zatrudnienia skupionych wokół Kafki.
W tym artykule przygotowaliśmy listę pytań i odpowiedzi na rozmowę kwalifikacyjną Kafki, które najprawdopodobniej pojawią się podczas następnej rozmowy kwalifikacyjnej. Możesz je sprawdzić, aby odświeżyć swoją wiedzę przed pójściem na rozmowę kwalifikacyjną. Więc zaczynamy!
Top 11 pytań i odpowiedzi na wywiad z Kafką
1. Co to jest Apache Kafka?
Kafka to bezpłatne narzędzie do przetwarzania danych o otwartym kodzie źródłowym stworzone przez Apache Software Foundation. Jest napisany w Scali i Javie i jest rozproszonym magazynem danych w czasie rzeczywistym przeznaczonym do przetwarzania danych strumieniowych. Oferuje wysoką przepustowość pracy na przyzwoitym sprzęcie.
Gdy tysiące źródeł danych nieprzerwanie wysyła jednocześnie rekordy danych, generowane są dane strumieniowe. Aby obsłużyć dane przesyłane strumieniowo, platforma przesyłania strumieniowego musiałaby przetwarzać te dane zarówno sekwencyjnie, jak i przyrostowo, jednocześnie obsługując nieprzerwany napływ danych.
Kafka przyjmuje ten napływ danych i buduje strumieniowe potoki danych, które przetwarzają i przenoszą dane z systemu do systemu.
Funkcje Kafki :
- Odpowiada za publikowanie strumieni rekordów danych i subskrybowanie ich
- Obsługuje efektywne przechowywanie strumieni danych w kolejności ich generowania
- Dba o przetwarzanie dni w czasie rzeczywistym
Zastosowania Kafki :
- Integracja danych
- Analizy w czasie rzeczywistym
- Przechowywanie w czasie rzeczywistym
- Rozwiązanie brokera wiadomości
- Wykrywanie oszustw
- Handel akcjami
2. Dlaczego używamy Kafki?
Apache Kafka służy jako centralny układ nerwowy udostępniający dane strumieniowe wszystkim aplikacjom strumieniowym (aplikacja wykorzystująca dane strumieniowe nazywana jest aplikacją strumieniową). Robi to, budując w czasie rzeczywistym potoki danych, które są odpowiedzialne za przetwarzanie i przesyłanie danych między różnymi systemami, które muszą z nich korzystać.
Kafka działa jako system brokera komunikatów między dwiema aplikacjami, przetwarzając i pośrednicząc w komunikacji.
Ma różnorodny zakres zastosowań, który obejmuje przesyłanie wiadomości, przetwarzanie, przechowywanie, transport, integrację i analizę danych w czasie rzeczywistym.
3. Jakie są kluczowe cechy Apache Kafka?
Do najważniejszych cech Kafki należą:
1. Trwałość – Kafka umożliwia bezproblemową obsługę dystrybucji i replikacji partycji danych na serwerach, które są następnie zapisywane na dysku. Zmniejsza to ryzyko awarii serwerów, sprawia, że dane są trwałe i odporne na błędy oraz zwiększa ich trwałość.
2. Skalowalność – Kafka może zostać zakłócona i zastąpiona na wielu serwerach, co czyni ją wysoce skalowalną, wykraczającą poza pojemność pojedynczego serwera. Z tego powodu partycje danych Kafki nie mają przestojów.
3. Zero utraty danych — przy odpowiednim wsparciu i odpowiednich konfiguracjach utratę danych można zredukować do zera.
4. Szybkość – Apache Kafka jest bardzo szybki ze względu na bardzo małe opóźnienia spowodowane oddzieleniem strumieni danych. Jest używany z Apache Spark, Apache Apex, Apache Flink, Apache Storm itp., z których wszystkie są zewnętrznymi aplikacjami do przesyłania strumieniowego w czasie rzeczywistym.
5. Wysoka przepustowość i replikacja – Kafka może obsługiwać miliony wiadomości, które są replikowane na wielu serwerach, aby zapewnić dostęp wielu subskrybentom.
4. Jak działa Kafka?
Kafka działa, łącząc dwa modele przesyłania komunikatów, umieszczając je w kolejce, publikując i subskrybując je, dzięki czemu można je udostępnić wielu instancjom konsumenckim.
Kolejkowanie zwiększa skalowalność, umożliwiając przetwarzanie i dystrybucję danych do wielu serwerów konsumenckich. Jednak te kolejki nie nadają się do obsługi wielu abonentów. W tym miejscu wkracza podejście publikowania i subskrybowania. Jednak ponieważ każda instancja wiadomości byłaby następnie wysyłana do każdego subskrybenta, to podejście nie może być stosowane do dystrybucji danych w wielu procesach.
Dlatego Kafka wykorzystuje partycje danych, aby połączyć te dwa podejścia. Wykorzystuje model dziennika podzielonego na partycje, w którym każdy dziennik, sekwencja rekordów danych, jest dzielony na mniejsze segmenty (partycje), aby obsłużyć wielu subskrybentów.
Umożliwia to różnym subskrybentom dostęp do tego samego tematu, dzięki czemu jest skalowalny, ponieważ każdy subskrybent ma partycję.
Model partycjonowanego dziennika Kafki można również odtwarzać, co pozwala różnym aplikacjom działać niezależnie, jednocześnie odczytując strumienie danych.
5. Jakie są cztery główne składniki Kafki?
Kafka składa się z czterech składników. Oni są:
– Temat
- Producent
– Brokerzy
– Konsument
Tematy to strumienie wiadomości tego samego typu.
Producenci mają możliwość publikowania komunikatów na dany temat.
Brokerzy to serwery, na których przechowywane są strumienie wiadomości publikowanych przez producentów.
Konsumenci to subskrybenci, którzy subskrybują tematy i uzyskują dostęp do danych przechowywanych przez brokerów.
6. Ile interfejsów API ma Kafka?
Kafka ma pięć głównych interfejsów API, którymi są:
– Producer API: odpowiedzialny za publikowanie wiadomości lub strumienia rekordów do danego tematu.
– Consumer API: znany jako subskrybenci tematów, które ściągają wiadomości publikowane przez producentów.
– Streams API: umożliwia aplikacjom przetwarzanie strumieni; obejmuje to przetwarzanie strumienia wejściowego dowolnego tematu i przekształcanie go w strumień wyjściowy. Ten strumień wyjściowy może być następnie wysłany do różnych tematów wyjściowych.
– Interfejs API: działa jako system automatyzujący, aby umożliwić dodawanie różnych aplikacji do istniejących tematów Kafki.
– Admin API: tematy Kafka są zarządzane przez Admin API, podobnie jak brokerzy i kilka innych obiektów Kafka.
7. Jakie jest znaczenie offsetu?
Unikalny numer identyfikacyjny, który jest przydzielany do wiadomości przechowywanych w partycjach, jest znany jako Przesunięcie. Offset służy jako numer identyfikacyjny dla każdej wiadomości zawartej w partycji.
8. Zdefiniuj grupę konsumentów.
Gdy kilka subskrybowanych tematów jest wspólnie konsumowanych przez więcej niż jednego konsumenta, nazywa się to grupą konsumentów.
9. Wyjaśnij znaczenie opiekuna zoo. Czy Kafka może być używana bez Zookeepera?
Przesunięcia (unikalne numery identyfikacyjne) dla określonego tematu, a także partycje używane przez określoną grupę konsumentów są przechowywane za pomocą Zookeepera. Służy jako kanał koordynacji między użytkownikami. Nie można używać Kafki, która nie ma Zookeepera. Sprawia to, że serwer Kafka jest niedostępny, a żądania klientów nie mogą być przetwarzane, jeśli pominięto Zookeeper.
10. Co oznacza lider i naśladowca w Kafce?
Do każdej partycji w Kafce przypisany jest serwer, który pełni rolę Lidera. Każde żądanie odczytu/zapisu jest przetwarzane przez Lidera. Rolą Wyznawców jest podążanie śladami Lidera. Jeśli system spowoduje awarię Lidera, jeden z Obserwatorów przestanie się replikować i zastąpi Lidera, aby zająć się równoważeniem obciążenia.
11. Jak uruchomić serwer Kafka?
Zanim uruchomisz serwer Kafka, włącz Zookeepera. Wykonaj poniższe kroki:
Serwer Zookeeper:
> bin/zookeeper-server-start.sh config/zookeeper.properties
Serwer Kafki:
bin/kafka-server-start.sh config/server.properties
Wniosek
Jeśli chcesz dowiedzieć się więcej o Big Data, sprawdź nasz program PG Diploma in Software Development Specialization in Big Data, który jest przeznaczony dla pracujących profesjonalistów i zawiera ponad 7 studiów przypadków i projektów, obejmuje 14 języków programowania i narzędzi, praktyczne praktyczne warsztaty, ponad 400 godzin rygorystycznej pomocy w nauce i pośrednictwie pracy w najlepszych firmach.
Sprawdź nasze inne kursy inżynierii oprogramowania w upGrad.