Witamy w Kafkaland!

(Bartha Bela Tibor) (19 czerwca 2020)

Wprowadzenie

Jeśli kiedykolwiek pracowałeś z kolejkami wiadomości lub platformami strumieniowymi, Kafka to ten, który należy sprawdzić. Najlepiej używać go do przesyłania strumieniowego danych w czasie rzeczywistym.

Jeśli rozważasz Kafkę w swojej aplikacji, Kafka jest najlepsza w następujących przypadkach:

  • Pub / Wiadomości dodatkowe
  • Przetwarzanie strumieniowe
  • Przechowywanie danych

Przede wszystkim przed dotknięciem Kafki należy wiedzieć, co następuje: Kafka błyskawicznie się rozwija, masz ogromną swobodę i łatwo jest się pomylić, przechodząc z innej platformy kolejkowania wiadomości.

W tym artykule skupimy się na robieniu rzeczy dobrze z Kafką.

Klucz Pojęcia:

  • wiadomość : jednostka danych
  • temat : kanał danych
  • partycja : tematy mogą mieć więcej partycji
  • offset : pozycja wiadomości w partycji
  • producent : umożliwia aplikacji publikowanie danych na dany temat
  • konsument : aplikacja może wykorzystywać dane z jednego lub większej liczby tematów. Jeden temat może mieć wielu konsumentów. Konsumenci mogą subskrybować dowolną liczbę części tematu.
  • grupy konsumentów : konsumenci mogą być zorganizowani w grupy konsumenckie, które czytają na dany temat, jednocześnie czytając z różnych partycje
  • broker : zarządza przechowywaniem tematów
  • klaster : wielu brokerów, zawierające kilku brokerów
  • lider / replika : każdy broker zawiera kilka partycji tematu, z których każda może być liderem lub repliką. Wszystkie zapisy i odczyty do tematu są wykonywane na liderze, który koordynuje aktualizację replik. Jeśli lider zawiedzie, rolę lidera przyjmuje replika.

Więcej informacji o podstawach Kafki można znaleźć tutaj .

Podstawy z Node.js

W tym wprowadzeniu użyjemy Node.js i utworzymy podstawowego producenta i konsumenta.

Po pierwsze, zainstalujesz Kafkę lokalnie, jak opisano tutaj .

W tym artykule założono, że mamy tylko jednego brokera.

Temat (y) zostaną utworzone przed uruchomieniem naszej aplikacji, patrz poniżej.

W chwili pisania tego wprowadzenia istnieją 3 stabilne pakiety do użycia z NodeJS:

  1. Node-rdkafka
  2. KafkaJS
  3. węzeł Kafka

Wszystkie te elementy działają w podobny sposób, na wstępie użyjemy node-rdkafka ( npm install node-rdkafka )

Zakładając, że zainstalowałeś Kafkę lokalnie z ustawieniami domyślnymi i uruchomiłeś jednego brokera, możemy stworzyć prostego producenta i konsumenta.

Utwórz temat ręcznie:

Utwórz producenta i utwórz wydarzenie:

Utwórz zdarzenie (a) konsumenta i konsumpcji:

To jest przykład dla płynnego konsumenta. Zużywa zdarzenia, które pojawiają się w temacie. Inną możliwością jest użycie niepływającego konsumenta, określając liczbę zdarzeń do wykorzystania jako parametr konsumenta. Konsumpcja (liczba). W tym przypadku otrzymamy wiadomości po tym, jak w temacie będzie liczba niewykorzystanych wiadomości.

Zatwierdzenia

Ponieważ Kafka został zaprojektowany z myślą o bezpieczeństwie w przypadku awarii, konsumenci mogą oznaczać wiadomości jako wykorzystane – popełnione . Domyślnie node-rdkafka wykonuje automatyczne zatwierdzanie , można to również zrobić ręcznie: konsument.commit () lub konsument.commitMessage (wiadomość) .

W przypadku rozłączenia konsumenta, inny konsument może kontynuować zatwierdzoną wiadomość.

Witamy w Kafkaland! Miłej zabawy!

To jest pierwszy z serii czterech artykułów. Zajmie się konkretnymi przypadkami użycia Kafki w: mikroserwisach, chatbotach i projektach fintech. Yay!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *