Wie man Ereignisse von PubNub zu RabbitMQ streamt
Tags: rabbitmq, messagebroker, pubnub, pubnubeventsactions
Published: 2024-03-07 16:04:08

Einführung in PubNub Events & Actions
-------------------------------------

PubNub Events & Actions ist ein PubNub-Service, der es Ihnen ermöglicht, spezifische PubNub-Ereignisse zu erfassen, wie z.B. das Veröffentlichen einer Nachricht und das Senden dieser Ereignisse an Ökosysteme von Drittanbietern. Wir unterstützen das Senden von PubNub-Ereignissen an diese Ökosysteme, die wir als PubNub-Aktion definieren, wie z. B. das Verbinden eines Webhooks oder das direkte Verbinden mit Ihren Cloud-Diensten, wie AWS, und viele weitere werden bald folgen. Alles wird jetzt im Admin-Portal konfiguriert, ohne dass Sie programmieren müssen.

  
Bitte beachten Sie unsere [Dokumentation](https://www.pubnub.com/docs/serverless/events-and-actions/overview) für weitere Informationen zu den ersten Schritten mit PubNub Events & Actions. Sie können sich auch unser How-to ansehen [Einrichten von Ereignissen und Aktionen](https://www.pubnub.com/how-to/set-up-events-and-actions/)in dem die Grundlagen der Erstellung von Event Listeners und Actions beschrieben werden. Schauen Sie sich auch das How-to über [Filtern von Nachrichten mit JSONPath](https://www.pubnub.com/how-to/eanda-advanced-jsonpath-filter/) für weitere Details zum Filtern von Ereignissen.

Was ist AMQP?
-------------

[Das Advanced Message Queuing Protocol](https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol) (AMQP) ist ein Messaging-Protokoll, das Client-Anwendungen die Kommunikation mit Messaging-Middleware-Brokern über eine skalierbare und sichere API ermöglicht. Es wurde im Jahr 2003 von John O'Hara bei [JPMorgan Chase](https://www.jpmorganchase.com/) in London entwickelt, erleichtert AMQP komplexe Messaging-Lösungen, einschließlich IoT-Daten-Streaming und Integration von Backend-Diensten. Mitte 2005 beteiligten sich an den Bemühungen zur Bildung einer AMQP-Benutzergruppe IT-Giganten wie [Cisco](https://www.cisco.com/), [Red Hat](https://www.redhat.com/)und [IONA Technologies](https://en.wikipedia.org/wiki/IONA_Technologies)und betonen die Bedeutung von Publish/Subscribe-Nachrichtenmustern.

### Makler und ihre Rolle

Messaging-Broker empfangen Nachrichten von [Herausgebern](https://www.rabbitmq.com/docs/publishers) (Anwendungen, die sie veröffentlichen, auch Produzenten genannt) und leiten sie an [Verbraucher](https://www.rabbitmq.com/docs/consumers) (Anwendungen, die sie verarbeiten).

Da es sich um ein Netzwerkprotokoll handelt, können sich die Publisher, Consumer und der Broker auf verschiedenen Rechnern befinden.

Was ist RabbitMQ?
-----------------

[RabbitMQ](https://www.pubnub.com/guides/rabbitmq/) ist eine Open-Source-Software für das Messaging-Queuing, bekannt als [Nachrichten-Broker](https://en.wikipedia.org/wiki/Message_broker) oder Warteschlangen-Manager. RabbitMQ implementiert [AMQP 0.9.1](https://www.rabbitmq.com/tutorials/amqp-concepts) als Grundlage für eine Reihe von Standards, die den gesamten Prozess der Nachrichtenwarteschlangen steuern. AMQP 0.9.1 wurde im November 2008 veröffentlicht und ist auch die in diesem Tutorial verwendete Version. Einfach ausgedrückt, handelt es sich um eine Software, in der Warteschlangen definiert sind, an die sich Anwendungen anschließen, um eine oder mehrere Nachrichten zu übertragen.

Eine Nachricht kann alle Arten von Informationen enthalten. Sie kann z. B. Informationen über einen Prozess oder eine Aufgabe enthalten, die in einer anderen Anwendung (die sich sogar auf einem anderen Server befinden kann) gestartet werden soll, oder sie kann eine einfache Textnachricht sein. Die Warteschlangenverwaltungssoftware speichert die Nachrichten, bis eine empfangende Anwendung eine Verbindung herstellt und eine Nachricht aus der Warteschlange nimmt. Die empfangende Anwendung verarbeitet dann die Nachricht.

Ein Message Broker fungiert als Vermittler für verschiedene Dienste (z. B. eine Webanwendung). Sie können die Arbeitslast und die Lieferzeiten von Webanwendungsservern verringern, indem sie Aufgaben delegieren, die normalerweise viel Zeit oder Ressourcen in Anspruch nehmen würden.

Erstellen einer RabbitMQ (AMQP) PubNub Aktion
---------------------------------------------

Die Verbindung von PubNub Events mit RabbitMQ kombiniert Echtzeit-Messaging mit effizientem Message-Queuing. Diese Verbindung ermöglicht eine skalierbare Nachrichtenverarbeitung und die Erstellung eigener Daten, wodurch Sie die volle Kontrolle über Ihren Informationsfluss haben.

### Vorraussetzungen

Vergewissern Sie sich, dass Sie einen PubNub-Account eingerichtet haben, und besuchen Sie [Ereignisse & Aktionen Preisgestaltung](https://www.pubnub.com/docs/general/resources/events-and-actions-pricing) Seite für Details zu den Kosten. Sie können auch zu Events & Actions im Pubnub Admin Portal navigieren und "Upgrade" wählen, um die Preispläne für Events & Actions zu sehen. In dieser Anleitung werden wir die PubNub Debug-Konsole verwenden, um Nachrichten zu veröffentlichen und die Verarbeitung dieser Nachrichten innerhalb einer RabbitMQ-Instanz zu überprüfen.

### Einrichten einer RabbitMQ-Instanz

Wir werden eine RabbitMQ-Instanz innerhalb von AWS einrichten, indem wir [Amazon MQ](https://aws.amazon.com/amazon-mq/)einrichten, damit Sie Brokers einrichten können. Es gibt viele verschiedene Möglichkeiten, einen Message Broker oder, genauer gesagt, einen RabbitMQ-Broker zu hosten, wie z. B. die Ausführung eines RabbitMQ-Images in einem Docker-Container und das Hosten in einer EC2-Instanz. Für diese Anleitung werden wir jedoch Amazon MQ verwenden.

Um eine RabbitMQ-Instanz innerhalb von Amazon MQ zu erstellen, folgen Sie den folgenden Schritten:

1.  Melden Sie sich an bei [Amazon Web Services](https://aws.amazon.com/) (AWS)
    
2.  Suchen Sie in der Suchleiste nach "Amazon MQ" und klicken Sie auf den Amazon MQ-Service
    
3.  Klicken Sie auf die Schaltfläche "Create brokers", um Ihren Broker zu konfigurieren
    
4.  Wählen Sie unter "Broker-Engine-Typen" "Rabbit MQ".
    
5.  Wählen Sie Ihren Deployment-Modus (abhängig vom Anwendungsfall Ihrer Applikation)
    
6.  Wählen Sie "Single-instance broker", da Sie nicht mehrere Verfügbarkeitszonen benötigen.
    
7.  Geben Sie einen Brokernamen ein, z. B. "rabbit-1".
    
8.  Geben Sie unter RabbitMQ access einen Benutzernamen und ein Passwort für die RabbitMQ Management Konsole ein. Damit werden Sie sich später bei Ihrer RabbitMQ-Instanz anmelden.
    
9.  Merken Sie sich Ihren Benutzernamen und Ihr Kennwort, da Sie sie später nicht mehr einsehen können.
    
10.  Wählen Sie "Broker erstellen". Die Erstellung des Brokers wird etwa 20 Minuten dauern.
    

Nachdem Sie diese Schritte ausgeführt haben, sollte Ihr Amazon Web Portal wie folgt aussehen:

![](https://www.pubnub.com/cdn/3prze68gbwl1/47gUB6rXW9RRx1uIfNDyG/981a07e2000cf3ba053ac1658408ba83/Screenshot_2024-02-28_at_12.46.13_AM.png)

Ihr Nachrichten-Broker ist nun so eingerichtet, dass er mit der Verarbeitung von PubNub-Ereignissen beginnen kann. Jetzt müssen wir nur noch Ihre RabbitMQ-Instanz mit PubNub Events & Actions verbinden.

### Einrichten eines PubNub Event Listeners

Wir werden einen PubNub Event Listener einrichten, der auf bestimmte PubNub Events wartet und bei Bedarf sogar PubNub Events herausfiltert. Event Listener warten auf eine bestimmte Reihe von Bedingungen, um eine vordefinierte Aktion auszulösen, wie z.B. das Senden von PubNub Nachrichten an Ihre RabbitMQ Instanz. Weitere Informationen zum Filtern von PubNub-Events finden Sie in unserer [Dokumentation](https://www.pubnub.com/docs/serverless/events-and-actions/events#advanced-json-path).

Um einen Event Listener zu erstellen, folgen Sie den folgenden Schritten:

1.  Loggen Sie sich in das [Verwaltungsportal](https://admin.pubnub.com/).
    
2.  Klicken Sie auf die Registerkarte Ereignisse und Aktionen auf der linken Seite des Portals.
    
3.  Folgen Sie dem Popup-Dialog und wählen Sie eine Ihrer Anwendungen aus
    
4.  Folgen Sie dem Popup-Dialog und wählen Sie ein Keyset
    
5.  Klicken Sie auf die Schaltfläche " + Event Listener".
    
6.  Wählen Sie Ihre Ereignisquelle. Für diese Anleitung werden wir "Nachrichten" wählen.
    
7.  Wählen Sie unter "Ereignisproduzent" die Option "Pub/Sub".
    
8.  Wählen Sie unter "Ereignistyp" die Option "Nachricht gesendet".
    
9.  Wählen Sie für diese Anleitung den Filtertyp "Kein Filter".
    
10.  Klicken Sie zum Beispiel auf das Bleistiftsymbol, um Ihren Ereignis-Listener zu benennen: "Kaninchen-1-Listener".
    
11.  Klicken Sie unten rechts auf dem Bildschirm auf "Änderungen speichern".
    

Nachdem Sie diese Schritte durchgeführt haben, sollte das Ereignis im PubNub-Portal wie folgt aussehen:

![](https://www.pubnub.com/cdn/3prze68gbwl1/1N2ktJi5nfhV5cwzbxsV9w/bacc1ee24c33c884a7e20d552edac22f/Screenshot_2024-02-28_at_1.07.07_AM.png)

### Einrichten einer PubNub-Aktion für Rabbit MQ

Nun werden wir eine Rabbit MQ-Aktion im PubNub-Portal einrichten:

1.  Zurück auf der Registerkarte "Events & Actions" wählen Sie "+ Add Action"
    
2.  Wählen Sie unter Aktionstyp "AMQP".
    
3.  Wählen Sie das Dropdown-Menü "Add event listener" und wählen Sie den oben erstellten Event Listener aus. In diesem Fall wählen Sie "Rabbit-1 Listener".
    

Wir müssen die AMQP-URL zu unserer RabbitMQ-Instanz abrufen. Zunächst werden AMQP-URLs in folgendem Format formatiert:

a**_mqps://_**username:password@host.name:port

Der Benutzername und das Passwort, die Sie der RabbitMQ-Instanz zugewiesen haben, werden hier verwendet, damit PubNub Nachrichten an Ihre Instanz senden kann. In meinem Fall würde die URL wie folgt definiert werden:  
  
a**_mqps://_**username:password@b-d7d2f067-c7be-45a9-8c20-de79a3c309d0.mq.us-west-2.amazonaws.com:5671

Sie finden den Hostnamen, indem Sie zu der Rabbit MQ-Instanz in Amazon MQ navigieren.

1.  Wählen Sie Ihre Instanz aus; wenn Sie den Anweisungen gefolgt sind, wählen Sie die Instanz "rabbit-1".
    
2.  Scrollen Sie nach unten. Kopieren Sie unter "Connections" und "Endpoints" den Hostnamen und den Port.
    

In diesem Fall war mein Hostname:

[**_b-d7d2f067-c7be-45a9-8c20-de79a3c309d0.mq.us-west-2.amazonaws.com_**](mailto:password@b-d7d2f067-c7be-45a9-8c20-de79a3c309d0.mq.us-west-2.amazonaws.com)**_:5671_**

![](https://www.pubnub.com/cdn/3prze68gbwl1/5DCfgqND97DuWM4gzXfgHq/c9dec4de19377075134e24296d2d3f20/image3.png)

So weit sollte unsere Aktion so aussehen. Allerdings müssen wir noch einen Routing-Schlüssel erstellen und austauschen. Führen Sie dazu die folgenden Schritte aus:

1.  Navigieren Sie zurück zu der Amazon MQ-Instanz "rabbit-1".
    
2.  Scrollen Sie nach unten zu Connections und klicken Sie auf den Link RabbitMQ web console. Dadurch werden Sie zur RabbitMQ-Verwaltungskonsole weitergeleitet.
    
3.  Sie sollten eine Webseite sehen, die wie folgt aussieht:
    

![](https://www.pubnub.com/cdn/3prze68gbwl1/5lZkMMdAqoXR5tffYI8Kdj/cd4db2aa907098f0007b2ebdc95492f7/Image_4.png)

Geben Sie Ihren Benutzernamen und Ihr Passwort ein, die Sie bei der Erstellung der RabbitMQ-Instanz festgelegt haben. Nachdem Sie sich in Ihre RabbitMQ-Verwaltungskonsole eingeloggt haben, werden wir eine Warteschlange erstellen. Führen Sie die folgenden Schritte aus, um Ihren Routing-Schlüssel zu erhalten:

1.  Nachdem Sie sich in der Management-Konsole eingeloggt haben, navigieren Sie zum Reiter "Queues".
    
2.  Wählen Sie das Dropdown-Menü "Add a new queue".
    
3.  Geben Sie der Warteschlange einen Namen; dies wird Ihr Routing-Schlüssel sein.
    
4.  Wählen Sie "Warteschlange hinzufügen".
    

Ihre Verwaltungskonsole sollte nun wie folgt aussehen:

![](https://www.pubnub.com/cdn/3prze68gbwl1/6m5GFhKxpJ8RxwmcdRNDBG/c07eb1055de0508a5eb1e5815425d5dd/GDhoAIVsr_Ll6U-BoBas09ZExbUj1lvt8sLYsNZqxU3QI2EPyFvtcFDoRJvP2D2l3l3FrJmbXU_bFitsH_9P7zalf8ptcgDIdF43W_jyRijw_t_WLfcEj0m_Z4r0.png)

Jetzt werden wir einen Austausch für Ihre Warteschlange erstellen. Ein Exchange ist der Ort, an dem Nachrichten gesendet werden. Vermittlungsstellen nehmen Nachrichten entgegen und leiten sie in 0 oder mehr Warteschlangen weiter. Der Routing-Algorithmus hängt vom Typ der Vermittlungsstelle und den Regeln ab, die Bindungen genannt werden. Lassen Sie uns einen Austausch erstellen.

1.  Navigieren Sie zur Registerkarte "Exchanges".
    
2.  Wählen Sie den Austausch "amqp.direct".
    
3.  Wählen Sie das Dropdown-Menü "Bindungen". Hier binden wir den Austausch an Ihre Warteschlange.
    
4.  In der Registerkarte "To queue" wollen wir "Publisher" schreiben, da dies der Name unserer Warteschlange ist.
    
5.  Der Routing-Schlüssel kann nach Belieben gewählt werden. Ich habe "amqp.publisher" für meine verwendet.
    

Ihr RabbitMQ-Konsolen-Setup sollte nun die Exchange- und Routing-Key-Konfiguration widerspiegeln, die auf die Verarbeitung von Echtzeitdaten und Benachrichtigungen in einer Microservices-Architektur zugeschnitten ist.

![](https://www.pubnub.com/cdn/3prze68gbwl1/5JwFENUlYKvwz4yb3gOF4w/b6af0191a23d10aad0eaa912159642ca/Image_6.png)

Kopieren Sie den Namen Ihres Routing-Keys und des Exchange-Feldes und füllen Sie die erforderlichen Felder in der PubNub-Aktion aus:

![](https://www.pubnub.com/cdn/3prze68gbwl1/5rOmc38fBgMHrDJnw5Fohb/49d67601ff3925d1730fd0f29457bd52/Image_7.png)

Testen Sie Ihre RabbitMQ-Integration mit PubNub E&A
---------------------------------------------------

Wir können die PubNub Debug Console verwenden, um unsere Integration zu testen. Navigieren Sie zum PubNub Admin Portal, und wählen Sie auf der linken Seite die "Debug Console". Da wir keine Filter in unserem Event Listener haben, sollte jedes Mal, wenn wir eine Nachricht auf einem beliebigen Kanal veröffentlichen, unsere Aktion ausgelöst werden und die PubNub-Nachricht sollte zur Verarbeitung durch unsere RabbitMQ-Instanz gesendet werden. Geben Sie einfach eine beliebige Nachricht ein und drücken Sie auf beiden Clients auf "Senden". Wir werden nun überprüfen, ob unsere RabbitMQ-Instanz diese Nachricht erhalten hat.

![](https://www.pubnub.com/cdn/3prze68gbwl1/7gEpCaLvIUqGnSSOFwyqw3/3a48565674d0fd9048f3cd874c9b72f0/Image_8.png)

Sobald wir eine Nachricht veröffentlicht haben, sollte die Nachricht in der "Publisher"-Warteschlange in der RabbitMQ-Verwaltungskonsole auftauchen, was einen effizienten Nachrichtendurchsatz und die Robustheit unseres Echtzeit-Nachrichtensystems demonstriert. Sie sollten Ihre Nachricht in der RabbitMQ-Konsole wie folgt sehen.

![](https://www.pubnub.com/cdn/3prze68gbwl1/4EMqQ7mmU1wk8zMli69YYB/1e3e12292fffc203e2f32678512c5d12/Image_9.png)

In diesem Fall habe ich 7 Nachrichten veröffentlicht, die sich alle in der Warteschlange befinden und verarbeitet werden können.

Wie geht es weiter?
-------------------

Diese Anleitung beschreibt die Schritte zur Einrichtung von PubNub Events & Actions und einer gehosteten RabbitMQ-Instanz für die Entwicklung von reaktionsschnellen Messaging-Systemen, die einen hohen Durchsatz bei der Nachrichtenübermittlung gewährleisten. Es gibt viele Anwendungsfälle, in denen jemand seine eigenen PubNub-Nachrichten verarbeiten möchte, wie z.B. das Definieren von Operationen mit der Echtzeit-Interaktivität, die PubNub mit Ihren Daten bietet, die mit Ihren Webservern verbunden sind. Zum Beispiel, die Verwendung des [PubNub Unity SDK](https://www.pubnub.com/docs/sdks/unity)kann die Echtzeitverarbeitung von Benutzeraktionen in Multiplayer-Spielen für Matchmaking, Live-Status-Updates, Leaderboards und In-Game-Chat genutzt werden, um ein interaktiveres Spielerlebnis zu ermöglichen. Es gibt noch viele andere Anwendungsfälle für Webanwendungen, schauen Sie sich unsere [Javascript](https://www.pubnub.com/docs/sdks/javascript) oder [Java SDK](https://www.pubnub.com/docs/sdks/java).

In diesem Artikel wurde eine der PubNub-Aktionen besprochen, die Sie mit PubNub E&A einrichten können, aber es gibt noch viele weitere:

-   [Einen Webhook-Aufruf machen](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-webhook-action) (d.h. Aufruf Ihres Servers für jedes gefilterte Ereignis)
    
-   [In SQS speichern](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-sqs-action) (d.h. speichern Sie jedes Ereignis in [Amazons Warteschlangen-Dienst SQS](https://aws.amazon.com/sqs/))
    
-   [An Kinesis senden](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kinesis-action) (d.h. senden an [Amazons Event Ingestion Service](https://aws.amazon.com/kinesis/))
    
-   [Senden an S3](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-s3-action) (d.h. Speichern der Daten in einem [Amazon S3-Bucket](https://aws.amazon.com/s3/))
    
-   [Senden an Kafka](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action) (d. h. Senden der Daten an [Apache Kafka](https://kafka.apache.org/))
    
-   [IFTTT-Aktion erstellen](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-ifttt-action) (d.h. senden an [If This Then That](https://ifttt.com/))
    

Bei Fragen oder Problemen wenden Sie sich bitte an das Developer Relations Team unter devrel@pubnub.com.

#### Inhalt

[Einführung in PubNub Events & ActionsWas](#h-0)[ist AMQPBroker](#h-1)[und ihre RolleWas](#h-2)[ist RabbitMQErstellen](#h-3)[einer RabbitMQ (AMQP) PubNub](#h-4)[ActionVoraussetzungenEinrichten](#h-5)[einer RabbitMQ InstanzEinrichten](#h-6)[eines PubNub Event ListenersEinrichten](#h-7)[einer PubNub Action für Rabbit MQTesten der](#h-8)[RabbitMQ Integration mit PubNub E&AWas](#h-9)[kommt als nächstes](#h-10)

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

Dieser Artikel wurde ursprünglich auf [PubNub.com](https://www.pubnub.com/how-to/stream-events-from-pubnub-to-rabbitmq/) veröffentlicht.

Unsere Plattform unterstützt Entwickler 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)