Apache Kafka
Aby uzyskać definicję wysokiego poziomu, przedstawmy krótką definicję Apache Kafka:
Apache Kafka to rozproszony, odporny na uszkodzenia, poziomo salalny, zatwierdzenie.
To były kilka słów na wysokim poziomie o Apache Kafka. Pozwól nam szczegółowo zrozumieć pojęcia.
Pionowe i poziome sanka
Temat w Apache Kafka jest jak kolejka, w której przechowywane są wiadomości. Wiadomości te są przechowywane dla konfigurowalnej ilości czasu, a komunikat nie jest usuwany, dopóki ten czas nie zostanie osiągnięty, nawet jeśli zostali zużyte przez wszystkich znanych konsumentów.
Kafka jest skalowalna, ponieważ to konsumenci faktycznie przechowują, że to, jaki przesłanie zostało przez nich pobrane jako wartość „przesunięcia”. Spójrzmy na postać, aby lepiej to zrozumieć:
Temat Partion i przesunięcie konsumentów w Apache Kafka
Pierwsze kroki z Apache Kafka
Aby zacząć używać Apache Kafka, należy go zainstalować na komputerze. Aby to zrobić, przeczytaj zainstaluj Apache Kafka na Ubuntu.
Upewnij się, że masz aktywną instalację Kafka, jeśli chcesz wypróbować przykłady, które przedstawiamy później na lekcji.
Jak to działa?
Z Kafką, Producent aplikacje publikują wiadomości który dociera do kafki Węzeł i nie bezpośrednio dla konsumenta. Z tego węzła Kafka wiadomości są konsumowane przez Konsument Aplikacje.
Kafka producent i konsument
Partycje tematyczne
Wytrwałość na dysku
Kafka utrzymuje rekordy wiadomości, które otrzymuje od producentów na dysku i nie utrzymuje ich w pamięci. Pytanie, które może się pojawić, jest to, jak to sprawia, że rzeczy jest wykonalne i szybkie? Było to kilka powodów, które czyni go optymalnym sposobem zarządzania zapisami wiadomości:
Dystrybucja danych i replikacja
Jak studiowaliśmy powyżej, temat jest podzielony na partycje, każdy rekord komunikatu jest replikowany na wielu węzłach klastra w celu utrzymania kolejności i danych każdego rekordu w przypadku śmierci jednego z węzłów.
Mimo że partycja jest replikowana na wielu węzłach, nadal istnieje Lider partycji węzeł, przez które aplikacje odczytują i zapisują dane na temat, a lider replikuje dane dotyczące innych węzłów, które są określane jako Obserwujący tej partycji.
Jeśli dane rekordu wiadomości są bardzo ważne dla aplikacji, gwarancja zapisu wiadomości jest bezpieczna w jednym z węzłów, można zwiększyć współczynnik replikacji klastra.
Co to jest Zookeeper?
Zookeeper to wysoce odporne na uszkodzenia, rozproszony sklep z kluczową wartością. Apache Kafka w dużej mierze zależy od Zookeeper do przechowywania mechaników klastrowych, takich jak bicie serca, aktualizacje/konfiguracje itp.).
Pozwala brokerom Kafka zasubskrybować siebie i wiedzieć, ilekroć nastąpi jakakolwiek zmiana dotycząca lidera partycji i dystrybucji węzłów.
Aplikacje producentów i konsumentów bezpośrednio komunikują się z Zookeeper aplikacja, aby wiedzieć, który węzeł jest liderem partycji tematu, aby mogli wykonywać odczyty i pisze od lidera partycji.
Streaming
Procesor strumienia jest głównym elementem w klastrze Kafka, który przyjmuje ciągły strumień danych rekordów wiadomości z tematów wejściowych, przetwarzają te dane i tworzy strumień danych na tematy wyjściowe, od śmieci po bazę danych.
Jest całkowicie możliwe wykonanie prostego przetwarzania bezpośrednio za pomocą interfejsów API producenta/konsumentów, choć w przypadku złożonego przetwarzania, takich jak łączenie strumieni, Kafka zapewnia zintegrowaną bibliotekę interfejsu API strumieni, ale pamiętaj, że ten interfejs API ma być używany w naszej własnej bazie kodowej i to nie robi. t biegaj na brokerze. Działa podobnie do interfejsu API konsumenckiego i pomaga nam zwiększyć działanie przetwarzania strumienia w wielu aplikacjach.
Kiedy używać apache kafka?
Jak badaliśmy w powyższych sekcjach, Apache Kafka może być używany do radzenia sobie z dużą liczbą rekordów wiadomości, które mogą należeć do praktycznie nieskończonej liczby tematów w naszych systemach.
Apache Kafka jest idealnym kandydatem, jeśli chodzi o korzystanie z usługi, która może pozwolić nam śledzić architekturę opartą na zdarzeniach w naszych aplikacjach. Wynika to z możliwości trwałości danych, tolerancyjnej i wysoce rozproszonej architektury, w której krytyczne aplikacje mogą polegać na jej wydajności.
Skalowalna i rozproszona architektura Kafka bardzo łatwo ułatwia integrację z mikrousługami i umożliwia aplikacji oddzielenie się z dużą ilością logiki biznesowej.
Tworzenie nowego tematu
Możemy stworzyć temat testowy Testowanie na serwerze Apache Kafka z następującym poleceniem:
Creatinig Temat
Sudo Kafka-Topics.SH-Create --zookeeper LocalHost: 2181-Odreplikacja Factor 1
--partycje 1 -Testy topowe
Oto, co wracamy z tym poleceniem:
Utwórz nowy temat Kafka
Potwierdzenie tworzenia tematu Kafka
Pisanie wiadomości na temat
Jak studiowaliśmy wcześniej, jednym z interfejsów API obecnych w Apache Kafka jest API producenta. Użyjemy tego interfejsu API do utworzenia nowej wiadomości i opublikowania na temat właśnie stworzonego przez nas tematu:
Pisanie wiadomości do tematu
Sudo Kafka-Console-producer.SH-Broker-List LocalHost: 9092-Testowanie topowe
Zobaczmy dane wyjściowe tego polecenia:
Opublikuj wiadomość do tematu Kafka
Wpisywanie wiadomości
Czytanie wiadomości z tematu
Teraz, gdy opublikowaliśmy wiadomość na temat Kafka, który stworzyliśmy, ten komunikat będzie dostępny na konfigurowalny czas. Możemy go teraz odczytać za pomocą API konsumentów:
Czytanie wiadomości z tematu
Sudo Kafka-Console-Consumer.sh -zookeeper LocalHost: 2181 --
TESTOWANIE TEMATY-od-beginning
Oto, co wracamy z tym poleceniem:
Polecenie przeczytania wiadomości z tematu Kafka
Publikować i konsumpcję jednocześnie
Wniosek
W tej lekcji przyjrzeliśmy się, w jaki sposób zaczynamy używać Apache Kafka, który jest doskonałym brokerem wiadomości i może również działać jako specjalna jednostka trwałości danych.