Łączenie Kafki i PubNub

PubNub Developer Relations - Mar 5 - - Dev Community

Kafka szybko staje się brokerem zdarzeń dla rozwoju architektury sterowanej zdarzeniami (EDA). EDA pomaga przyspieszyć rozwój oprogramowania, generować funkcje i spostrzeżenia w czasie rzeczywistym oraz oddzielać systemy monolityczne.

Kakfa nie została jednak zaprojektowana do bezpośredniego łączenia się z urządzeniami brzegowymi, takimi jak smartfony, przeglądarki, urządzenia IoT i laptopy. PubNub to kompletna platforma do tworzenia i zarządzania aplikacjami działającymi w czasie rzeczywistym na urządzeniach brzegowych, do których Kafka nie może dotrzeć. Na szczęście nasi klienci mogą mieć to, co najlepsze z obu światów, zasilając swoje aplikacje czasu rzeczywistego danymi pochodzącymi bezpośrednio z ich systemów (gdzie zdarzenia są już przesyłane strumieniowo przez Kafkę) i łącząc się z urządzeniami brzegowymi za pomocą PubNub.

Ponadto wielu naszych klientów będzie przesyłać strumieniowo zdarzenia z urządzeń brzegowych z powrotem do Kafki, z opcjonalnym filtrowaniem, agregacją i innym wstępnym przetwarzaniem wymaganym "na brzegu" (tj. w sieci PubNub) przed wysłaniem tych zdarzeń do Kafki.

Czym jest PubNub Kafka Bridge?

PubNub Kafka Bridge umożliwia płynne łączenie zdarzeń z wdrożeniem Kafki do i z PubNub przy użyciu odpowiednio naszego nowego Sink Connector i Kafka Action. Kafka Bridge obsługuje wdrożenia lokalne, na platformie Amazon za pośrednictwem usługi Managed Kafka (MSK) lub w chmurze Confluent.

Gotowy Kafka Sink Connector integruje się bezpośrednio z wdrożeniem Kafka, umożliwiając dystrybucję zdarzeń w czasie rzeczywistym z Kafka do urządzeń brzegowych, w tym przeglądarek internetowych, aplikacji mobilnych i czujników IoT.

W pełni zarządzana Kafka Action, dostępna w ramach naszej usługi Events & Actions, ułatwia strumieniowe przesyłanie zdarzeń z urządzeń brzegowych z powrotem do Kafki, oferując opcjonalne filtrowanie, agregację i inne możliwości wstępnego przetwarzania potrzebne "na brzegu".

Jeśli chcesz tylko dowiedzieć się, jak skonfigurować PubNub Kafka Bridge, możesz przejść od razu do końca tego artykułu lub zapoznać się z naszą dedykowaną dokumentacją Kafka. Dokumentacja Kafka.

Dlaczego warto używać PubNub + Kafka w architekturze sterowanej zdarzeniami (EDA)?

Krótko mówiąc: Kafka jest najpopularniejszym rozwiązaniem do zasilania architektury sterowanej zdarzeniami w centrum danych. PubNub nie zastępuje Kafki, ale rozszerza ją poza centrum danych na urządzenia użytkowników końcowych i inne centra danych.

Ale co to oznacza w praktyce?

Wszystkie duże firmy, które odniosły sukces, przeszły na architekturę sterowaną zdarzeniami, aby usprawnić zarządzanie i skalowalność swoich systemów, zapewniając klientom bardziej responsywne doświadczenie. EDA wykorzystuje zdarzenia do komunikacji między usługami zaplecza i/lub urządzeniami użytkowników końcowych.Pomyśl o zdarzeniu jako zmianie stanu systemu, takiej jak nowe zamówienie złożone za pośrednictwem witryny e-commerce lub aktualizacja statusu otrzymana od pracownika terenowego. Zdarzenia te są publikowane w magistrali zdarzeń, a następnie kierowane do każdego, kto zasubskrybował otrzymywanie tych zdarzeń.

Zdarzenia, magistrala zdarzeń i subskrybenci to terminy ogólne i można spotkać się z różnymi terminami używanymi do opisania funkcjonalnie podobnych koncepcji, na przykład "magistrala zdarzeń" jest różnie nazywana "magistralą komunikatów", "brokerem zdarzeń" lub "systemem Pub/Sub", w zależności od źródła lub branży.

Dlaczego Kafka?

Kafka to niezawodne rozwiązanie EDA o otwartym kodzie źródłowym, z którego korzysta 80% firm z listy Fortune 100.

Dlaczego więc używać PubNub z Kafką?

Podczas gdy Kafka jest używana i wdrażana w centrum danych klienta, PubNub rozszerza koncepcje EDA oparte na zdarzeniach poza centrum danych do brzegu sieci, w tym do przeglądarek internetowych, aplikacji mobilnych i urządzeń IoT. Zarówno Kafka, jak i PubNub zostały zaprojektowane z myślą o skalowalności, więc gdy są używane w połączeniu, mogą łączyć miliony urządzeń użytkowników końcowych poza zaporą ogniową z setkami serwerów zaplecza w bezpiecznej sieci.

Ponadto korzystanie z jednej usługi, takiej jak PubNub, do komunikacji z urządzeniami brzegowymi może uprościć proces certyfikacji, ponieważ nie trzeba już sprawdzać dostawcy dla każdej usługi/urządzenia, do którego/od którego trzeba wysyłać zdarzenia - wystarczy wykonać tylko jedno sprawdzenie dostawcy za pomocą PubNub.

Pomyśl o PubNub jako o "globalnej magistrali zdarzeń" lub magistrali komunikatów, umożliwiającej rozszerzenie wdrożenia Kafka EDA ze scentralizowanych centrów danych na szeroką gamę urządzeń brzegowych. PubNub obsługuje już wszystkie funkcje magistrali zdarzeń, takie jak przesyłanie komunikatów Pub/Sub w celu strumieniowego przesyłania zdarzeń w czasie rzeczywistym, zwiększone bezpieczeństwo, trwałość w celu pobierania wcześniejszych komunikatów i przetwarzanie zdarzeń w locie.

  • Czy*generujesz zdarzenia Kafka, które chciałbyś zobaczyć na brzegu* sieci? Możesz to osiągnąć dzięki PubNub.

  • Czy*gromadzisz dane na brzegu sieci?* Na przykład interakcje użytkowników z aplikacją mobilną lub internetową? Możesz wysyłać te zdarzenia do instancji Kafka za pomocą PubNub.

PubNub + Kafka: Przypadki użycia EDA:

Przyjrzyjmy się kilku przypadkom użycia, które można osiągnąć za pomocą kombinacji PubNub i Kafka:

  • Każde zdarzenie Kafka, które już generujesz w swoim systemie, może być przesyłane strumieniowo w czasie rzeczywistym bezpośrednio do aplikacji, w tym aplikacji JavaScript działających w przeglądarce. Możesz filtrować i przetwarzać zdarzenia Kafka przed ich opublikowaniem, upewniając się, że wysyłane są tylko ważne i istotne zdarzenia.

  • Rozszerz zdarzenia Kafka na brzeg sieci w bezpieczny sposób, który nie wymaga specjalistycznych niestandardowych bramek działających w Twoim środowisku.

  • Łatwe łączenie heterogenicznych systemów: PubNub posiada ponad 50 zestawów SDK i został zbudowany od podstaw z myślą o bezpieczeństwem z myślą o bezpieczeństwie, więc interoperacyjność nie będzie problemem.

  • Twórz aplikacje, które przesyłają strumieniowo zdarzenia w czasie rzeczywistym bezpośrednio do siebie nawzajem (takie jak duże pokoje rozmów, lokalizacje urządzeń, odczyty czujników itp.), jednocześnie zapewniając jednoczesne przesyłanie wszystkich zdarzeń do brokera Kafka w celu analizy, archiwizacji i nie tylko.

  • Łączenie wielu centrów danych lub hybrydowych wdrożeń centrów danych bez konieczności konfigurowania złożonych środowisk VPC.

  • Syndykować strumienie danych partnerom biznesowym, udostępniając bezpieczny interfejs API do przesyłania strumieniowego oparty na PubNub, z modelem zabezpieczeń o zerowym zaufaniu, który umożliwia łatwe filtrowanie, konfigurowanie i wyłączanie strumieni zdarzeń.

Konfiguracja PubNub Kafka Bridge

Kafka Bridge to ogólny termin PubNub dla wszystkich integracji Kafka/PubNub i obejmuje dwa oddzielne rozwiązania.

  1. "PubNub Kafka Sink Connector" służy do wysyłania zdarzeń Kafka do PubNub. Zapewniamy niestandardowy Kafka Sink Connector, który umożliwia PubNub odbieranie zdarzeń Kafka.

  2. "PubNub Kafka Action", która jest częścią naszego produktu Events & Actions, umożliwia wysyłanie zdarzeń PubNub do Kafki.

Warunkiem wstępnym dla wszystkich kroków konfiguracji opisanych tutaj jest zarejestrowanie się w PubNub i uzyskanie kluczy API (publish_key i subscribe_key).

Konfiguracja konektora PubNub Kafka Sink Connector

Aby lepiej zrozumieć, jak zainstalować, skonfigurować i przetestować konektor PubNub Kafka Sink, zdecydowanie polecam ten wcześniejszy wpis na blogu, "Instalowanie konektora PubNub Kafka Sink*",* napisany przez twórcę konektora.

Dodatkową dokumentację można również znaleźć na naszej stronie z dokumentacją PubNub Kafka Sink Connector.

Podsumowując: PubNub Kafka Sink Connector jest dostępny na Githubie pod adresem https://github.com/pubnub/pubnub-kafka-sink-connector.

Jeśli chcesz tylko przetestować konektor, aby zobaczyć, jak działa, w repozytorium znajduje się obraz Docker, który uruchomi instancję Kafka, zainstaluje zależności i wyemituje zdarzenia testowe składające się z parametru znacznika czasu. Po włączeniu konektora za pomocą wywołania POST zobaczysz zdarzenia PubNub odbierane z niskim opóźnieniem, które pasują do zdarzeń testowych Kafka.

Aby użyć złącza sink w środowisku produkcyjnym, można użyć polecenia Maven do zbudowania pliku .jar ze źródła, który następnie można skopiować do odpowiedniego katalogu (w zależności od konfiguracji Kafka Connect) i odpowiednio skonfigurować złącze.

Pełną konfigurację konektora można znaleźć na stronie dokumentacji, ale wszystkie wdrożenia będą wymagały co najmniej:

  • Temat lub tematy Kafka, które mają być wysyłane do PubNub.

  • klucze PubNub i ID, których Kafka powinna używać podczas publikowania do PubNub

  • Dodatkowe opcje serializacji i obsługi błędów.

Konfigurowanie akcji PubNub Kafka

Events& Actions to usługa PubNub, która umożliwia wysyłanie danych w czasie rzeczywistym do systemów innych firm w celu przechowywania, przetwarzania lub analizy. Events & Actions działa poprzez umożliwienie określenia zdarzeń PubNub, na przykład wiadomość została opublikowana w określonym kanale PubNub lub użytkownik o określonym identyfikatorze publikuje wiadomość.Dla każdego zdarzenia można określić, które akcje powinny mieć miejsce, gdy zdarzenie zostanie wyzwolone, na przykład możesz chcieć wyzwolić Webhook, wysłać dane do Amazon Kinesis lub (jak można się domyślić z tematu tego artykułu) wysłać dane do Apache Kafka.

Jako szybkie odniesienie do dokumentacji, kroki są następujące:

  1. Zdefiniuj zdarzenie lub zdarzenia PubNub, które reprezentują dane, które chcesz wysłać do Kafki. Jest to również krok, który pozwala filtrować zdarzenia pasujące do określonych wzorców

  2. Skonfigurowanie akcji K afka ze szczegółami punktu końcowego Kafka. Może to być self-hosted, klaster Amazon MSK lub Confluent Cloud.

Przykład konfiguracji akcji PubNub Kafka

Wybierając "Events & Actions" w portalu administracyjnym PubNub, masz możliwość określenia zarówno słuchacza zdarzeń, jak i akcji.

Creating a Kafka Action

Wybierz "+ Add Event Listener" i wybierz źródło zdarzeń.

Creating a Kafka Action

Załóżmy, że chcemy wyeksportować wszystkie wiadomości otrzymane na kanale o nazwie "send-to-kafka", konfiguracja zdarzenia będzie wyglądać mniej więcej tak:

Creating a Kafka Action

Następnie utwórz akcję Apache Kafka

Creating a Kafka Action

Znaczenie każdego z pól w konfiguracji akcji jest szczegółowo opisane w dokumentacji akcji Kafka, ale poniższy zrzut ekranu odpowiada konfiguracji dla:

  • Temat Kafka: topic_0

  • Klucz tematu Kafka: stamford

  • Uwierzytelnianie: SCRAM-SHA-256

  • Adres URL klastra Kafka do odbierania zdarzeń: 574mf0rd-bridge.ldn-west:1905

  • Nieudane próby będą ponawiane dwukrotnie, z interwałem obliczonym przy użyciu wzoru opartego na około 450 sekundach.

Creating a Kafka Action

Podsumowanie

Jeśli korzystasz już z Kafki w swojej organizacji, możesz zwiększyć możliwości urządzeń na brzegu sieci w czasie rzeczywistym za pomocą PubNub. Oznacza to, że zdarzenia zachodzące w magistrali zdarzeń Kafki mogą być dystrybuowane do klientów niezależnie od platformy, na przykład przeglądarki internetowej korzystającej z JavaScript lub urządzenia mobilnego z systemem iOS lub Android. Możesz także pozyskiwać dane z urządzeń klienckich do Kafki w czasie rzeczywistym za pośrednictwem sieci PubNub bez żadnych złożonych problemów związanych z konfiguracją, skalowalnością lub bezpieczeństwem danych.

Aby dowiedzieć się więcej, sprawdź naszą dedykowaną stronę dla deweloperów Kafka Bridge lub naszą dokumentację integracji Kafka. Jeśli masz jakiekolwiek pytania dotyczące konfiguracji, skontaktuj się z naszym zespołem pomocy technicznej lub zespołem ds. relacji z deweloperami, wysyłając wiadomość e-mail na adres devrel@pubnub.com.

Spis treści

Czym jestPubNub Kafka Bridge? Dlaczego wartoużywać PubNub + Kafka w architekturze sterowanej zdarzeniami (EDA)?PubNub + Kafka: Przypadki użycia EDA:Konfiguracja PubNub Kafka BridgeKonfiguracja PubNubKafka Sink ConnectorKonfiguracja PubNub KafkaActionPrzykład konfiguracji PubNubKafkaActionPodsumowanie

Jak PubNub może ci pomóc?

Ten artykuł został pierwotnie opublikowany na PubNub.com

Nasza platforma pomaga programistom tworzyć, dostarczać i zarządzać interaktywnością w czasie rzeczywistym dla aplikacji internetowych, aplikacji mobilnych i urządzeń IoT.

Fundamentem naszej platformy jest największa w branży i najbardziej skalowalna sieć przesyłania wiadomości w czasie rzeczywistym. Dzięki ponad 15 punktom obecności na całym świecie obsługującym 800 milionów aktywnych użytkowników miesięcznie i niezawodności na poziomie 99,999%, nigdy nie będziesz musiał martwić się o przestoje, limity współbieżności lub jakiekolwiek opóźnienia spowodowane skokami ruchu.

Poznaj PubNub

Sprawdź Live Tour, aby zrozumieć podstawowe koncepcje każdej aplikacji opartej na PubNub w mniej niż 5 minut.

Rozpocznij konfigurację

Załóż konto PubNub, aby uzyskać natychmiastowy i bezpłatny dostęp do kluczy PubNub.

Rozpocznij

Dokumenty PubNub pozwolą Ci rozpocząć pracę, niezależnie od przypadku użycia lub zestawu SDK.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .