Łączenie Kafki i PubNub
Published: 2024-03-05 16:20:01

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](https://www.pubnub.com/solutions/edge-messaging/), 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](https://www.pubnub.com/developers/kafka/) umożliwia płynne łączenie zdarzeń z wdrożeniem Kafki do i z PubNub przy użyciu odpowiednio naszego nowego [Sink Connector](https://www.pubnub.com/docs/general/integrations/kafka/pubnub-kafka-sink-connector) i [Kafka Action](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-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".

![](https://www.pubnub.com/cdn/3prze68gbwl1/2NylVGyDwejUVytkpbDjve/5b4e989f27a501a2c2063c54850d73eb/Kafka_Bridge.svg?w=700&h=550)

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](https://www.pubnub.com/docs/general/integrations/kafka/basics).

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](https://kafka.apache.org) 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](https://www.pubnub.com/solutions/edge-messaging/), 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](https://www.pubnub.com/docs/general/messages/publish) w celu strumieniowego przesyłania zdarzeń w czasie rzeczywistym, [zwiększone bezpieczeństwo](https://www.pubnub.com/docs/general/security/access-control), [trwałość](https://www.pubnub.com/docs/general/storage) w celu pobierania wcześniejszych komunikatów i [przetwarzanie zdarzeń w locie](https://www.pubnub.com/docs/serverless/functions/overview).

-   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](https://www.pubnub.com/docs/general/setup/data-security) 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](https://www.pubnub.com/docs/general/integrations/kafka/basics) 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](https://kafka.apache.org/documentation/#sinkconnectconfigs), który umożliwia PubNub odbieranie zdarzeń Kafka.
    
2.  "PubNub Kafka Action", która jest częścią naszego produktu [Events & Actions](https://www.pubnub.com/docs/serverless/events-and-actions/overview), umożliwia **wysyłanie zdarzeń PubNub** **_do_** **Kafki**.
    

Warunkiem wstępnym dla wszystkich kroków konfiguracji opisanych tutaj jest zarejestrowanie się w [PubNub](http://admin.pubnub.com) 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 k**](https://www.pubnub.com/blog/installing-pubnub-kafka-sink-connector/)onektora PubNub Kafka Sink**",** napisany przez twórcę konektora.

Dodatkową dokumentację można również znaleźć na naszej [stronie z dokumentacją PubNub Kafka Sink Connector](https://www.pubnub.com/docs/general/integrations/kafka/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](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](https://docs.confluent.io/platform/current/connect/userguide.html#installing-kconnect-plugins)) i odpowiednio skonfigurować złącze.

[Pełną konfigurację](https://www.pubnub.com/docs/general/integrations/kafka/pubnub-kafka-sink-connector#configuration-options) 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[&](https://www.pubnub.com/docs/serverless/events-and-actions/overview) 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ń](https://www.pubnub.com/docs/serverless/events-and-actions/events) 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](https://www.pubnub.com/docs/serverless/events-and-actions/overview#actions) 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](https://www.pubnub.com/docs/serverless/events-and-actions/events), 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](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action) 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](https://admin.pubnub.com) PubNub, masz możliwość określenia zarówno słuchacza zdarzeń, jak i akcji.

![Creating a Kafka Action ](https://www.pubnub.com/cdn/3prze68gbwl1/6OVcygGditdFc2EGSVIy1j/9f1f2cd9030f27e9efba8cc5a39705c5/1.png)

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

![Creating a Kafka Action ](https://www.pubnub.com/cdn/3prze68gbwl1/52VGEHf6TQFvPE3I41pb6g/b533f7787d2688c741cd694cece10cbe/2.png)

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 ](https://www.pubnub.com/cdn/3prze68gbwl1/5Oh144gN0jimJfKaYxLgbB/39e902cc2bfe0e9db80f2d1fa7960bd5/3.png)

Następnie utwórz akcję Apache Kafka

![Creating a Kafka Action ](https://www.pubnub.com/cdn/3prze68gbwl1/1IDJ8MfST0SAAcRtUpxXRC/ee64a3d56d4e4b6ff47711f8dde3ec13/4.png)

Znaczenie każdego z pól w konfiguracji akcji jest szczegółowo opisane w [dokumentacji akcji](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action) 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](https://www.pubnub.com/docs/serverless/events-and-actions/events#retries) opartego na około 450 sekundach.
    

![Creating a Kafka Action ](https://www.pubnub.com/cdn/3prze68gbwl1/5htBDRFrFIPAIrJmADnK73/fad12a93dca4f892d4dd166a656f9722/5.png)

Podsumowanie
------------

Jeśli korzystasz już z Kafki w swojej organizacji, możesz zwiększyć możliwości urządzeń na [brzegu](https://www.pubnub.com/solutions/edge-messaging/) sieci w czasie rzeczywistym za [pomocą PubNub](https://www.pubnub.com/solutions/edge-messaging/). 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](https://www.pubnub.com/developers/kafka/) lub naszą [dokumentację integracji K](https://www.pubnub.com/docs/general/integrations/kafka/basics)afka. Jeśli masz jakiekolwiek pytania dotyczące konfiguracji, skontaktuj się z naszym [zespołem pomocy technicznej](https://support.pubnub.com/hc/en-us) lub zespołem ds. relacji z deweloperami, wysyłając wiadomość e-mail na adres [devrel@pubnub.com](mailto:devrel@pubnub.com).

#### Spis treści

Czym jest[PubNub K](#h-0)afka Bridge? Dlaczego warto[używać PubNub + Kafka w architekturze sterowanej zdarzeniami (EDA)?](#h-1)[PubNub + Kafka: Przypadki użycia](#h-2) EDA:[Konfiguracja PubNub Kafka BridgeKonfiguracja](#h-3) PubNub[Kafka Sink ConnectorKonfiguracja](#h-4) PubNub Kafka[ActionPrzykład](#h-5) konfiguracji PubNub[Kafka](#h-6)[ActionPodsumowanie](#h-7)

Jak PubNub może ci pomóc?
=========================

Ten artykuł został pierwotnie opublikowany na [PubNub.com](https://www.pubnub.com/blog/connecting-kafka-and-pubnub/)

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](https://www.pubnub.com/tour/introduction/), aby zrozumieć podstawowe koncepcje każdej aplikacji opartej na PubNub w mniej niż 5 minut.

Rozpocznij konfigurację
-----------------------

Załóż [konto](https://admin.pubnub.com/signup/) PubNub, aby uzyskać natychmiastowy i bezpłatny dostęp do kluczy PubNub.

Rozpocznij
----------

[Dokumenty](https://www.pubnub.com/docs) PubNub pozwolą Ci rozpocząć pracę, niezależnie od przypadku użycia lub [zestawu SDK](https://www.pubnub.com/docs).