Jak skonfigurować partycjonowanie w Apache Kafka

Jak skonfigurować partycjonowanie w Apache Kafka
Apache Kafka to potężna usługa brokera wiadomości. Jest bardzo szybki i niezawodny. Apache Kafka jest open source i bezpłatny w użyciu. Jest napisany w Javie.W tym artykule pokażę, jak skonfigurować partycje w Apache Kafka. Zacznijmy.

Podstawy partycji Apache Kafka:

Aby zrozumieć podstawy Apache Kafka PrzegrodaS, musisz wiedzieć o Kafce Temat Pierwszy.

A Temat jest jak baza danych w bazie danych SQL, takiej jak Mariadb dla Apache Kafka. A Temat ma nazwę lub identyfikator, którego używasz do grupowania wiadomości w Apache Kafka.

A Przegroda jest jak kanał dla każdego Temat. A Temat może mieć wiele Przegrodas lub kanały.

Kabel sieciowy łączący dwa komputery ma dwa końce, jeden wysyła dane, drugi odbiera dane. Po prostu temat Apache Kafka ma dwa końce, Producents i KonsumentS. A Producent tworzy wiadomości i wysyła je w jednym z Przegrodas a Temat. A Konsument Z drugiej strony czyta wiadomości z Przegrodas a Temat.

Wiele PrzegrodaS lub kanały są tworzone w celu zwiększenia redundancji. Służy również do grupowania wiadomości w określonym Temat.

Uruchamianie Apache Kafka Server:

Jeśli śledziłeś mój artykuł, aby zainstalować Apache Kafka, najpierw uruchom Apache Kafka Server z następującym poleceniem:

$ sudo kafka-server-start.sh /etc /kafka.nieruchomości

Serwer Apache Kafka powinien się uruchomić. Trzymaj ten terminal otwarty, o ile chcesz działał Apache Kafka.

Tworzenie tematu Apache Kafka:

Możesz utworzyć apache kafka Temat Testowanie Z następującym poleceniem:

$ sudo kafka-topics.cii \
--tworzyć \
--Zookeeper LocalHost: 2181 \
--Factor replikacji 1 \
--partycje 1 \
--Testowanie tematu

Temat Testowanie należy utworzyć. Ten Temat ma 1 partycję.

Jeśli chcesz stworzyć, powiedzmy N partycje, a następnie ustawiaj -partycje Do N.

Stwórzmy kolejne Temat, powiedzmy użytkownicy, z 3 PrzegrodaS, następnie uruchom następujące polecenie:

$ sudo kafka-topics.cii \
--tworzyć \
--Zookeeper LocalHost: 2181 \
--Factor replikacji 1 \
--partycje 3 \
--Użytkownicy tematu

Użytkownicy tematu należy utworzyć z 3 PrzegrodaS.

Dodawanie partycjonowanych wiadomości do tematu:

A PrzegrodaWiadomość o ed Temat ma klucz i a wartość. klucz I wartość jest zwykle oddzielony przecinek lub inny charakter specjalny. Nie ma znaczenia, jakiego charakteru specjalnego używasz do oddzielenia klucz I wartość para. Ale musisz użyć tej samej specjalnej postaci wszędzie na tym Temat. W przeciwnym razie rzeczy mogą pójść nie tak.

klucz służy do ustalenia, który Przegroda wiadomość o Temat należy do. Powinien być wyjątkowy na Temat. Jeśli masz 3 Przegrodas, wtedy powinieneś użyć 3 różny kluczS. Aby wiadomości mogły być podzielone na 3 PrzegrodaS.

Powiedzmy nasz użytkownicy Temat ma 3 użytkownicy z Klucz 1, 2, I 3, Każdy z nich należy do jednego z 3 Przegrodas temat użytkowników.

Uruchom następujące polecenie, aby dodać pierwszego użytkownika z Klucz 1 używając API producenta Kafka:

$ echo "1, Nazwa: 'shahriar shovon', kraj: 'bd'" | Sudo Kafka-Console-producer.cii \
--Broker-List LocalHost: 9092 \
--Użytkownicy tematu \
--Parse nieruchomości.Key = true \
--Klucz właściwości.separator =,

Teraz możesz wymienić wiadomość z użytkownicy Temat używając Kafka Consumer API Z następującym poleceniem:

$ Sudo Kafka-Console-Consumer.cii \
--Zookeeper LocalHost: 2181 \
--Użytkownicy tematu \
--Wydruk nieruchomości.Key = true \
--Klucz właściwości.separator =, \
--od początku

Jak widać, klucz I wartość para, którą właśnie dodałem do użytkownicy Temat znajduje się na liście.

Zamierzam zatrzymać Konsument program dla użytkownicy Temat Otwórz na tym terminalu i dodaj pozostałych użytkowników do użytkownicy Temat od drugiego Terminal i zobacz, co się stanie.

Dodaj innego użytkownika z Klucz 2 Z następującym poleceniem:

$ echo "2, nazwa:„ John Doe ', kraj: „bd'” | Sudo Kafka-Console-producer.cii \
--Broker-List LocalHost: 9092 \
--Użytkownicy tematu \
--Parse nieruchomości.Key = true \
--Klucz właściwości.separator =,

Jak widać z zaznaczonej sekcji zrzutu zrzutu zrzutu poniżej, nowy użytkownik jest natychmiast wymieniony w programie konsumenckim.

Dodajmy naszego ostatniego użytkownika z Klucz 3 Z następującym poleceniem:

$ echo "3, Nazwa: 'evelina aquilino', kraj: 'us'" | Sudo Kafka-Console-producer.cii \
--Broker-List LocalHost: 9092 \
--Użytkownicy tematu \
--Parse nieruchomości.Key = true \
--Klucz właściwości.separator =,

Jak widać, nowy użytkownik jest również wymieniony w Konsument program.

Możesz także dodać wielu użytkowników do tego samego Przegroda. Po prostu upewnij się, że klucz Jest taki sam.

Dodajmy innego użytkownika do Przegroda z Klucz 1:

$ echo "1, nazwa:„ Lynelle piatt ', kraj: „ca'” | Sudo Kafka-Console-producer.cii \
--Broker-List LocalHost: 9092 \
--Użytkownicy tematu \
--Parse nieruchomości.Key = true \
--Klucz właściwości.separator =,

Jak widać, nowy użytkownik jest dodawany do właściwego Przegroda z temat użytkowników.

Mogę nadal dodawać losowych użytkowników do użytkownicy Temat i zostaną wysyłane przez właściwą partycję, jak widać na zrzucie ekranu poniżej.

Więc tak PrzegrodaS w Apache Kafka pracuje. Każdy Przegroda jest jak Kolejka, Pierwsza wiadomość, którą wysyłasz przez tę partycję, jest wyświetlana najpierw, a następnie druga wiadomość i tak dalej w kolejności, którą są wysyłane.

Jeśli jesteś Jawa programista, możesz użyć Jawa język programowania i Apache Kafka Java APIS, aby robić interesujące rzeczy z Apache Kafka PrzegrodaS. Na przykład możesz przypisać różne Przegroda W przypadku różnych sal czatowych dla aplikacji informacyjnej, ponieważ wiadomości muszą być wyświetlane w kolejności, które są wysyłane.

Więc to wszystko na dziś. Dziękuję za przeczytanie tego artykułu.