Verbindung zwischen Kafka und PubNub
Published: 2024-03-05 16:32:20

Kafka entwickelt sich schnell zum defacto Event Broker für die Entwicklung ereignisgesteuerter Architekturen (EDA). EDA trägt dazu bei, die Softwareentwicklung zu beschleunigen, Echtzeitfunktionen und Einblicke zu generieren und monolithische Systeme zu entkoppeln.

Kakfa ist jedoch nicht für die direkte Verbindung mit [Edge-Geräten](https://www.pubnub.com/solutions/edge-messaging/) wie Smartphones, Browsern, IoT-Geräten und Laptops konzipiert. Hier kommt PubNub ins Spiel: PubNub ist eine vollständige Plattform für die Entwicklung und Verwaltung von Echtzeitanwendungen, die auf Edge-Geräten laufen, die Kafka nicht erreichen kann. Glücklicherweise können unsere Kunden das Beste aus beiden Welten nutzen, indem sie ihre Echtzeitanwendungen mit Daten versorgen, die direkt aus ihren Systemen stammen (wo Ereignisse bereits über Kafka gestreamt werden), und sich über PubNub mit ihren Edge-Geräten verbinden.

Außerdem werden viele unserer Kunden Ereignisse von Edge-Geräten zurück in Kafka streamen, mit optionaler Filterung, Aggregation und anderer Vorverarbeitung, die "am Rand" (d.h. innerhalb des PubNub-Netzwerks) erforderlich sind, bevor diese Ereignisse an Kafka gesendet werden.

Was ist die PubNub Kafka Bridge?
--------------------------------

Die [PubNub Kafka Bridge](https://www.pubnub.com/developers/kafka/) ermöglicht es Ihnen, Ereignisse mit Ihrem Kafka-Einsatz nahtlos in und aus PubNub zu überbrücken, indem Sie unseren neuen [Sink Connector](https://www.pubnub.com/docs/general/integrations/kafka/pubnub-kafka-sink-connector) bzw. [Kafka Action](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action) verwenden. Die Kafka-Bridge unterstützt den Einsatz vor Ort, bei Amazon über deren Managed Kafka Service (MSK) oder in der Confluent Cloud.

Der vorgefertigte Kafka Sink Connector lässt sich direkt in Ihre Kafka-Bereitstellung integrieren und ermöglicht die Verteilung von Ereignissen in Echtzeit **von** Kafka **an** Edge-Geräte, einschließlich Webbrowser, mobile Apps und IoT-Sensoren.

Die vollständig verwaltete Kafka Action, die über unseren Events & Actions Service zugänglich ist, erleichtert das Streaming von Ereignissen **von** Edge-Geräten zurück **in** Kafka und bietet optionale Filter-, Aggregations- und andere Vorverarbeitungsfunktionen, die "am Rand" benötigt werden.

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

Wenn Sie nur wissen wollen, wie Sie die PubNub Kafka Bridge konfigurieren, können Sie direkt zum Ende dieses Artikels springen oder unsere spezielle [Kafka-Dokumentation](https://www.pubnub.com/docs/general/integrations/kafka/basics).

Warum PubNub + Kafka für Ihre ereignisgesteuerte Architektur (EDA) verwenden?
-----------------------------------------------------------------------------

Lange Rede, kurzer Sinn: Kafka ist die beliebteste Lösung für ereignisgesteuerte Architekturen im Rechenzentrum. PubNub ersetzt Kafka nicht, sondern erweitert es außerhalb des Rechenzentrums auf die Geräte der Endbenutzer und andere Rechenzentren.

**Aber was bedeutet das in der Praxis?**

Alle erfolgreichen Großunternehmen haben den Übergang zu einer ereignisgesteuerten Architektur vollzogen, um die Verwaltung und Skalierbarkeit ihrer Systeme zu verbessern und den Kunden ein reaktionsschnelleres Erlebnis zu bieten. EDA verwendet Ereignisse zur Kommunikation zwischen Back-End-Diensten und/oder Endbenutzergeräten.Stellen Sie sich ein Ereignis als eine Änderung des Systemzustands vor, z. B. eine neue Bestellung auf einer E-Commerce-Website oder eine Statusaktualisierung durch einen Außendienstmitarbeiter. Diese Ereignisse werden auf einem Ereignisbus veröffentlicht und dann an alle weitergeleitet, die sich für den Empfang dieser Ereignisse angemeldet haben.

Ereignisse, Event-Bus und Abonnenten sind allgemeine Begriffe, und es kann vorkommen, dass verschiedene Begriffe verwendet werden, um funktionell ähnliche Konzepte zu beschreiben. So ist der "Event-Bus" je nach Quelle oder Branche als "Message-Bus", "Event-Broker" oder "Pub/Sub-System" bekannt.

**Warum Kafka?**

[Kafka](https://kafka.apache.org) ist eine zuverlässige, quelloffene EDA-Lösung, die 80 % der Fortune-100-Unternehmen nutzen.

**Warum also PubNub mit Kafka verwenden?**

Während Kafka im Rechenzentrum des Kunden verwendet und eingesetzt wird, erweitert PubNub die ereignisgesteuerten EDA-Konzepte außerhalb des Rechenzentrums auf den [Netzwerkrand](https://www.pubnub.com/solutions/edge-messaging/), einschließlich Webbrowsern, mobilen Anwendungen und IoT-Geräten. Sowohl Kafka als auch PubNub sind auf Skalierbarkeit ausgelegt, so dass sie bei gemeinsamer Verwendung Millionen von Endgeräten außerhalb der Firewall mit Hunderten von Backend-Servern in einem sicheren Netzwerk verbinden können.

Darüber hinaus kann die Verwendung eines einzigen Dienstes wie PubNub für die Kommunikation mit Ihren Edge-Geräten Ihren Zertifizierungsprozess vereinfachen, da Sie nicht mehr für jeden Dienst/jedes Gerät, an den/das Sie Ereignisse senden müssen, eine Herstellerprüfung durchführen müssen - mit PubNub müssen Sie nur eine einzige Herstellerprüfung durchführen.

Betrachten Sie PubNub als Ihren "globalen Event-Bus" oder Message-Bus, der es Ihnen ermöglicht, Ihre Kafka-EDA-Implementierung von zentralen Rechenzentren auf eine breite Palette von Edge-Geräten zu erweitern. PubNub unterstützt bereits alle Event-Bus-Funktionen, wie [Pub/Sub-Messaging](https://www.pubnub.com/docs/general/messages/publish) für Event-Streaming in Echtzeit, [verbesserte Sicherheit](https://www.pubnub.com/docs/general/security/access-control), [Persistenz](https://www.pubnub.com/docs/general/storage) zum Abrufen vergangener Nachrichten und [fliegende Event-Verarbeitung](https://www.pubnub.com/docs/serverless/functions/overview).

-   Wenn**Sie Kafka-Ereignisse generieren, die Sie am Netzwerkrand sehen möchten,** können Sie dies mit PubNub erreichen.
    
-   **Sammeln Sie Daten am Netzwerkrand,** z. B. Benutzer, die mit Ihrer mobilen oder Web-Anwendung interagieren? Sie können diese Ereignisse mit PubNub an Ihre Kafka-Instanz senden
    

PubNub + Kafka: EDA Anwendungsfälle:
------------------------------------

Schauen wir uns einige Anwendungsfälle an, die mit einer Kombination aus PubNub und Kafka erreicht werden können:

-   Jedes Kafka-Ereignis, das Sie bereits in Ihrem System erzeugen, kann **in Echtzeit** direkt an Anwendungen **gestreamt** werden, einschließlich JavaScript-Anwendungen, die im Browser laufen. Sie können die Kafka-Ereignisse filtern und verarbeiten, bevor sie veröffentlicht werden, um sicherzustellen, dass nur wichtige und relevante Ereignisse gesendet werden.
    
-   **Erweitern Sie Ihre Kafka-Ereignisse auf** sichere Weise**auf den Netzwerkrand**, ohne dass spezielle benutzerdefinierte Gateways in Ihrer Umgebung ausgeführt werden müssen.
    
-   **Verbinden Sie heterogene Systeme mit Leichtigkeit:** PubNub verfügt über mehr als 50 SDKs und ist von Grund auf mit [Sicherheit](https://www.pubnub.com/docs/general/setup/data-security) entwickelt, so dass die Interoperabilität kein Problem darstellt.
    
-   **Erstellen Sie Anwendungen, die Echtzeit-Ereignisse** direkt zueinander**streamen** (z. B. große Chatrooms, Gerätestandorte, Sensormesswerte usw.) und gleichzeitig sicherstellen, dass alle Ereignisse gleichzeitig in Ihren Kafka-Broker zur Analyse, Archivierung usw. fließen.
    
-   **Überbrücken Sie mehrere Rechenzentren** oder hybride Rechenzentrumsbereitstellungen, ohne komplexe VPC-Umgebungen einzurichten.
    
-   **Syndizieren Sie Datenströme an Geschäftspartner**, indem Sie eine sichere, auf PubNub basierende Streaming-API mit einem Zero-Trust-Sicherheitsmodell bereitstellen, mit dem Sie Ereignisströme problemlos filtern, konfigurieren und deaktivieren können.
    

Konfigurieren der PubNub Kafka Bridge
-------------------------------------

Die [Kafka Bridge](https://www.pubnub.com/docs/general/integrations/kafka/basics) ist PubNubs Oberbegriff für die gesamte Kafka/PubNub-Integration und umfasst zwei separate Lösungen.

1.  Der "PubNub Kafka Sink Connector" wird verwendet, um **Kafka-Ereignisse** **_an_** **PubNub** zu **senden** . Wir bieten einen benutzerdefinierten [Kafka Sink Connector](https://kafka.apache.org/documentation/#sinkconnectconfigs) an, der es PubNub ermöglicht, Kafka-Ereignisse zu empfangen.
    
2.  Die "PubNub Kafka Action", die Teil unseres [Events & Actions-Produkts](https://www.pubnub.com/docs/serverless/events-and-actions/overview) ist, ermöglicht es Ihnen, **PubNub-Events** **_an_** **Kafka** zu senden.
    

Als Voraussetzung für alle hier beschriebenen Konfigurationsschritte müssen Sie [sich bei PubNub anmelden](http://admin.pubnub.com) und Ihre API-Schlüssel (publish\_key und subscribe\_key) erhalten.

### Konfigurieren des PubNub Kafka Sink Connectors

Um besser zu verstehen, wie man den PubNub Kafka Sink Connector installiert, konfiguriert und testet, **empfehle ich Ihnen diesen früheren Blog-Beitrag "**[**Installing the PubNub Kafka Sink Connector**](https://www.pubnub.com/blog/installing-pubnub-kafka-sink-connector/)**",** den der Entwickler des Connectors geschrieben hat.

Sie können auch zusätzliche Dokumentation auf unserer [PubNub Kafka Sink Connector docs Seite](https://www.pubnub.com/docs/general/integrations/kafka/pubnub-kafka-sink-connector) finden.

Zusammengefasst: Der PubNub Kafka Sink Connector ist auf Github unter [https://github.com/pubnub/pubnub-kafka-sink-connector](https://github.com/pubnub/pubnub-kafka-sink-connector) verfügbar [.](https://github.com/pubnub/pubnub-kafka-sink-connector)

Wenn Sie den Konnektor nur testen möchten, um zu sehen, wie er funktioniert, wird ein Docker-Image im Repository bereitgestellt, das eine Kafka-Instanz startet, Abhängigkeiten installiert und Test-Ereignisse ausgibt, die aus einem Zeitstempel-Parameter bestehen. Nachdem Sie den Konnektor mit einem POST-Aufruf aktiviert haben, werden Sie sehen, dass PubNub-Ereignisse mit geringer Latenz empfangen werden, die den Kafka-Test-Ereignissen entsprechen.

Um den Sink-Konnektor in der Produktion zu verwenden, kann ein Maven-Befehl verwendet werden, um die .jar-Datei aus dem Quellcode zu erstellen, die dann in das entsprechende Verzeichnis kopiert werden kann (abhängig von Ihrem [Kafka Connect Setup](https://docs.confluent.io/platform/current/connect/userguide.html#installing-kconnect-plugins)) und der Konnektor entsprechend konfiguriert wird.

Die [vollständige Konfiguration des Konnektors](https://www.pubnub.com/docs/general/integrations/kafka/pubnub-kafka-sink-connector#configuration-options) finden Sie auf der Dokumentationsseite, aber alle Bereitstellungen benötigen mindestens:

-   Das Kafka-Topic oder die Topics, die Sie an PubNub senden wollen
    
-   Die PubNub-Schlüssel und ID, die Kafka bei der Veröffentlichung an PubNub verwenden soll
    
-   Zusätzliche Optionen für Serialisierung und Fehlerbehandlung.
    

### Konfigurieren der PubNub Kafka-Aktion

[Events & Actions](https://www.pubnub.com/docs/serverless/events-and-actions/overview) ist ein PubNub-Dienst, der es Ihnen ermöglicht, Echtzeitdaten zur Speicherung, Verarbeitung oder Analyse an Systeme von Drittanbietern zu senden. Events & Actions ermöglicht es Ihnen, [PubNub-Ereignisse](https://www.pubnub.com/docs/serverless/events-and-actions/events) zu spezifizieren, z. B. dass eine Nachricht in einem bestimmten PubNub-Kanal veröffentlicht wurde oder dass ein Benutzer mit einer bestimmten ID eine Nachricht veröffentlicht.Für jedes Ereignis können Sie angeben, welche [Aktionen](https://www.pubnub.com/docs/serverless/events-and-actions/overview#actions) stattfinden sollen, wenn das Ereignis ausgelöst wird, z.B. können Sie einen Webhook auslösen, Ihre Daten an Amazon Kinesis senden oder (wie Sie vielleicht aus dem Thema dieses Artikels erraten haben) Ihre Daten an Apache Kafka senden.

Ein kurzer Verweis auf die Dokumentation: Die Schritte sind:

1.  [Definieren Sie das PubNub-Ereignis oder die Ereignisse](https://www.pubnub.com/docs/serverless/events-and-actions/events), die die Daten repräsentieren, die Sie an Kafka senden möchten. Dies ist auch der Schritt, der es Ihnen ermöglicht, nach Ereignissen zu filtern, die bestimmten Mustern entsprechen.
    
2.  [Konfigurieren Sie die Kafka-Aktion](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action) mit den Details Ihres Kafka-Endpunkts, z. B. selbst gehostet, ein Amazon MSK-Cluster oder Confluent Cloud.
    

### Beispiel für die Konfiguration der PubNub Kafka-Aktion

Durch Auswahl von "Events & Actions" im [PubNub-Administrationsportal](https://admin.pubnub.com) haben Sie die Möglichkeit, sowohl einen Event-Listener als auch eine Action anzugeben.

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

Wählen Sie '+ Add Event Listener' und wählen Sie eine Ereignisquelle.

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

Nehmen wir an, wir wollen alle Nachrichten exportieren, die auf dem Kanal mit dem Namen "send-to-kafka" eingehen, dann sieht die Event-Konfiguration etwa so aus:

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

Als nächstes erstellen Sie eine Apache Kafka-Aktion

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

Was die einzelnen Felder in der Aktionskonfiguration bedeuten, ist in der [Kafka-Aktionsdokumentation](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action) ausführlich beschrieben, aber der folgende Screenshot entspricht der Konfiguration für:

-   Kafka-Thema: topic\_0
    
-   Kafka-Thema-Schlüssel: stamford
    
-   Authentifizierung: SCRAM-SHA-256
    
-   URL des Kafka-Clusters für den Empfang von Ereignissen: 574mf0rd-bridge.ldn-west:1905
    
-   Fehlgeschlagene Versuche werden zweimal wiederholt, wobei das Intervall nach einer [Formel](https://www.pubnub.com/docs/serverless/events-and-actions/events#retries) berechnet wird, die auf 450 Sekunden basiert.
    

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

Zusammenfassung
---------------

Wenn Sie in Ihrem Unternehmen bereits Kafka einsetzen, können Sie [mit PubNub](https://www.pubnub.com/solutions/edge-messaging/) die Echtzeitfähigkeiten von Geräten am [Netzwerkrand](https://www.pubnub.com/solutions/edge-messaging/) erweitern. Das bedeutet, dass Ereignisse, die in Ihrem Kafka-Event-Bus stattfinden, unabhängig von der Plattform an Ihre Clients verteilt werden können, z. B. über einen Webbrowser mit JavaScript oder ein mobiles Gerät mit iOS oder Android. Außerdem können Sie Daten von Ihren Client-Geräten in Echtzeit über das PubNub-Netzwerk in Kafka einspeisen, ohne dass Sie sich Gedanken über komplexe Einstellungen, Skalierbarkeit oder Datensicherheit machen müssen.

Weitere Informationen finden Sie auf unserer speziellen [Seite für Kafka-Bridge-Entwickler](https://www.pubnub.com/developers/kafka/) oder in unserer [Dokumentation zur Kafka-Integration](https://www.pubnub.com/docs/general/integrations/kafka/basics). Wenn Sie Fragen zur Einrichtung haben, wenden Sie sich bitte an unser [Support-Team](https://support.pubnub.com/hc/en-us) oder an unser Team für Entwicklerbeziehungen per E-Mail an [devrel@pubnub.com.](mailto:devrel@pubnub.com)

#### Inhalt

[Was ist die PubNub Kafka Bridge?](#h-0)[Warum PubNub + Kafka für Ihre Event Driven Architecture (EDA) verwenden?](#h-1)[PubNub + Kafka: EDA Anwendungsfälle:](#h-2)[Konfigurieren der PubNub Kafka BridgeKonfigurieren](#h-3)[des PubNub Kafka Sink ConnectorsKonfigurieren der](#h-4)[PubNub Kafka ActionBeispiel](#h-5)[für die Konfiguration der PubNub Kafka](#h-6)[ActionZusammenfassung](#h-7)

Wie kann PubNub Ihnen helfen?
=============================

Dieser Artikel wurde ursprünglich auf [PubNub.com](https://www.pubnub.com/blog/connecting-kafka-and-pubnub/) veröffentlicht

Unsere Plattform hilft Entwicklern bei der Erstellung, Bereitstellung und Verwaltung von Echtzeit-Interaktivität für Webanwendungen, mobile Anwendungen und IoT-Geräte.

Die Grundlage unserer Plattform ist das größte und am besten skalierbare Echtzeit-Edge-Messaging-Netzwerk der Branche. Mit über 15 Points-of-Presence weltweit, die 800 Millionen monatlich aktive Nutzer unterstützen, und einer Zuverlässigkeit von 99,999 % müssen Sie sich keine Sorgen über Ausfälle, Gleichzeitigkeitsgrenzen oder Latenzprobleme aufgrund von Verkehrsspitzen machen.

PubNub erleben
--------------

Sehen Sie sich die [Live Tour](https://www.pubnub.com/tour/introduction/) an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen

Einrichten
----------

Melden Sie sich für einen [PubNub-Account](https://admin.pubnub.com/signup/) an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln

Beginnen Sie
------------

Mit den [PubNub-Dokumenten](https://www.pubnub.com/docs) können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder [SDK](https://www.pubnub.com/docs)