Comment streamer des événements de PubNub vers RabbitMQ
Tags: rabbitmq, messagebroker, pubnub, pubnubeventsactions
Published: 2024-03-07 16:09:09

Introduction à PubNub Events & Actions
--------------------------------------

PubNub Events & Actions est un service PubNub qui vous permet de capturer des événements PubNub spécifiques, tels que la publication d'un message, et d'envoyer ces événements à des écosystèmes tiers. Nous supportons l'envoi d'événements PubNub vers ces écosystèmes, que nous définissons comme une action PubNub, comme la connexion d'un webhook ou la connexion directe à vos services cloud, comme AWS, et bien d'autres encore à venir. Tout est configuré dès maintenant dans le portail d'administration, sans aucun codage.

  
Veuillez vous référer à notre [documentation](https://www.pubnub.com/docs/serverless/events-and-actions/overview) pour plus d'informations sur la façon de démarrer avec PubNub Events & Actions. Vous pouvez également consulter notre guide pratique sur la [la configuration des événements et des actions](https://www.pubnub.com/how-to/set-up-events-and-actions/)qui couvre les bases de la création d'écouteurs d'événements et d'actions. Consultez également le how-to sur [filtrer les messages à l'aide de JSONPath](https://www.pubnub.com/how-to/eanda-advanced-jsonpath-filter/) pour plus de détails sur le filtrage des événements.

Qu'est-ce que l'AMQP ?
----------------------

[Le protocole avancé de mise en file d'attente des messages](https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol) (AMQP) est un protocole de messagerie qui permet aux applications clientes de communiquer avec des courtiers intermédiaires de messagerie par le biais d'une API évolutive et sécurisée. Créé en 2003 par John O'Hara chez [JPMorgan Chase](https://www.jpmorganchase.com/) à Londres, AMQP facilite les solutions de messagerie complexes, y compris le streaming de données IoT et l'intégration de services dorsaux. À la mi-2005, les efforts visant à former un groupe d'utilisateurs AMQP ont vu la participation de géants de l'informatique tels que [Cisco](https://www.cisco.com/), [Red Hat](https://www.redhat.com/)et [IONA Technologies](https://en.wikipedia.org/wiki/IONA_Technologies)en mettant l'accent sur l'importance des modèles de messagerie de type publication/abonnement.

### Les courtiers et leur rôle

Les courtiers en messagerie reçoivent les messages des [éditeurs](https://www.rabbitmq.com/docs/publishers) (applications qui les publient, également appelées producteurs) et les acheminent vers les [consommateurs](https://www.rabbitmq.com/docs/consumers) (applications qui les traitent).

Comme il s'agit d'un protocole réseau, les éditeurs, les consommateurs et le courtier peuvent tous résider sur des machines différentes.

Qu'est-ce que RabbitMQ ?
------------------------

[RabbitMQ](https://www.pubnub.com/guides/rabbitmq/) est un logiciel libre de mise en file d'attente de messages connu sous le nom de [courtier de messages](https://en.wikipedia.org/wiki/Message_broker) ou gestionnaire de file d'attente. RabbitMQ implémente [AMQP 0.9.1](https://www.rabbitmq.com/tutorials/amqp-concepts) comme base d'un ensemble de normes contrôlant l'ensemble du processus de mise en file d'attente de messages. AMQP 0.9.1 a été publié en novembre 2008, et c'est également la version utilisée dans ce tutoriel. En termes simples, il s'agit d'un logiciel dans lequel sont définies des files d'attente auxquelles les applications se connectent pour transférer un ou plusieurs messages.

Un message peut contenir n'importe quel type d'information. Il peut, par exemple, contenir des informations sur un processus ou une tâche qui doit démarrer sur une autre application (qui peut même se trouver sur un autre serveur), ou il peut s'agir d'un simple message texte. Le logiciel de gestion des files d'attente stocke les messages jusqu'à ce qu'une application réceptrice se connecte et retire un message de la file d'attente. L'application réceptrice traite alors le message.

Un courtier de messages agit comme un intermédiaire pour divers services (par exemple, une application web). Il peut réduire la charge de travail et les délais de livraison des serveurs d'applications web en déléguant des tâches qui prendraient normalement beaucoup de temps ou de ressources.

Créer une action PubNub RabbitMQ (AMQP)
---------------------------------------

La connexion des événements PubNub à RabbitMQ combine la messagerie en temps réel avec une mise en file d'attente efficace des messages. Cette connexion permet un traitement évolutif des messages et la création de données propriétaires, garantissant une propriété et un contrôle complets sur votre flux d'informations.

### Pré-requis

Assurez-vous d'avoir un compte PubNub et consultez le site Web de PubNub. [Prix des événements et actions](https://www.pubnub.com/docs/general/resources/events-and-actions-pricing) pour en savoir plus sur les coûts. Vous pouvez également naviguer vers Events & Actions dans le portail d'administration de Pubnub et sélectionner "Upgrade" pour voir les plans de prix pour Events & Actions. Pour ce how-to, nous allons utiliser la console PubNub Debug pour publier des messages et vérifier le traitement de ces messages à l'intérieur d'une instance RabbitMQ.

### Mise en place d'une instance RabbitMQ

Nous allons configurer une instance RabbitMQ au sein d'AWS en utilisant [Amazon MQ](https://aws.amazon.com/amazon-mq/)ce qui permet de mettre en place des courtiers. Il existe de nombreuses façons d'héberger un courtier de messages ou, plus précisément, un courtier RabbitMQ, par exemple en exécutant une image RabbitMQ dans un conteneur Docker et en l'hébergeant à l'aide d'une instance EC2. Cependant, pour ce guide pratique, nous utiliserons Amazon MQ.

Pour créer une instance RabbitMQ dans Amazon MQ, suivez les étapes ci-dessous :

1.  Connectez-vous à [Amazon Web Services](https://aws.amazon.com/) (AWS)
    
2.  Dans la barre de recherche, recherchez "Amazon MQ" et cliquez sur le service Amazon MQ.
    
3.  Cliquez sur le bouton "Create brokers" pour configurer votre courtier.
    
4.  Sous "Broker engine types", sélectionnez "Rabbit MQ".
    
5.  Sélectionnez votre mode de déploiement (en fonction du cas d'utilisation de votre application)
    
6.  Sélectionnez "Single-instance broker" car vous n'avez pas besoin de plusieurs zones de disponibilité.
    
7.  Saisissez un nom de courtier tel que "rabbit-1".
    
8.  Sous Accès RabbitMQ, entrez un nom d'utilisateur et un mot de passe pour la console de gestion RabbitMQ. Vous les utiliserez plus tard pour vous connecter à votre instance RabbitMQ.
    
9.  Souvenez-vous de votre nom d'utilisateur et de votre mot de passe, car vous ne pourrez pas les consulter à nouveau.
    
10.  Sélectionnez "Create Broker" (Créer un courtier). La création du courtier prendra environ 20 minutes.
    

Après avoir suivi ces étapes, votre portail Web Amazon devrait ressembler à ce qui suit :

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

Votre courtier de messages est maintenant configuré pour commencer à traiter les événements PubNub. Il ne nous reste plus qu'à connecter votre instance RabbitMQ aux événements et actions PubNub.

### Mise en place d'un écouteur d'événements PubNub

Nous allons configurer un écouteur d'événements PubNub pour écouter des événements PubNub spécifiques et même filtrer les événements PubNub si nécessaire. Les écouteurs d'événements attendent un ensemble particulier de conditions pour déclencher une action prédéfinie, comme l'envoi de messages PubNub à votre instance RabbitMQ. Pour plus d'informations sur le filtrage des événements PubNub, consultez notre [documentation](https://www.pubnub.com/docs/serverless/events-and-actions/events#advanced-json-path).

Pour créer un écouteur d'événements, suivez les étapes ci-dessous :

1.  Connectez-vous au [Portail d'administration](https://admin.pubnub.com/).
    
2.  Cliquez sur l'onglet Événements et actions dans la partie gauche du portail.
    
3.  Suivez la boîte de dialogue et sélectionnez l'une de vos applications.
    
4.  Suivez la boîte de dialogue et choisissez un jeu de clés.
    
5.  Cliquez sur le bouton "+ Event Listener".
    
6.  Choisissez votre source d'événement. Pour ce guide, nous choisirons "Messages".
    
7.  Sous "Event Producer", sélectionnez "Pub/Sub".
    
8.  Sous "Event Type", sélectionnez "Message sent".
    
9.  Sélectionnez votre type de filtre pour ce guide pratique, "Pas de filtre".
    
10.  Par exemple, cliquez sur l'icône du crayon pour nommer votre auditeur d'événement : "Rabbit-1 Listener".
    
11.  Cliquez sur "Enregistrer les modifications" en bas à droite de l'écran.
    

Après avoir suivi ces étapes, l'événement sur le portail PubNub devrait ressembler à ce qui suit :

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

### Configuration d'une action PubNub vers Rabbit MQ

Maintenant, nous allons configurer une action Rabbit MQ sur le portail PubNub :

1.  Retournez sur l'onglet "Events & Actions" et sélectionnez "+ Add Action"
    
2.  Sous "Action Type", sélectionnez "AMQP".
    
3.  Sélectionnez le menu déroulant "Add event listener" et sélectionnez l'écouteur d'événement créé ci-dessus. Dans ce cas, sélectionnez "Rabbit-1 Listener".
    

Nous devons obtenir l'URL AMQP de notre instance RabbitMQ. Tout d'abord, les URL AMQP sont formatées de la manière suivante :

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

Le nom d'utilisateur et le mot de passe que vous avez attribué à l'instance RabbitMQ seront utilisés ici pour que PubNub puisse envoyer des messages à votre instance. Dans mon cas, l'URL serait définie comme suit :  
  
a**_mqps://_**username:password@b-d7d2f067-c7be-45a9-8c20-de79a3c309d0.mq.us-west-2.amazonaws.com:5671

Vous pouvez trouver le nom d'hôte en naviguant vers l'instance Rabbit MQ dans Amazon MQ.

1.  Sélectionnez votre instance ; si vous avez suivi, sélectionnez l'instance "rabbit-1".
    
2.  Faites défiler vers le bas. Sous "Connections" et "Endpoints", copiez le nom d'hôte et le port.
    

Dans ce cas, mon nom d'hôte était :

[**_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)

Jusqu'à présent, notre action devrait ressembler à ceci. Cependant, nous devons créer et échanger une clé de routage. Pour ce faire, suivez les étapes ci-dessous :

1.  Retournez à l'instance Amazon MQ "rabbit-1".
    
2.  Faites défiler vers le bas jusqu'à Connections et cliquez sur le lien RabbitMQ web console. Vous serez alors dirigé vers la console de gestion RabbitMQ.
    
3.  Vous devriez voir une page web qui ressemble à ceci :
    

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

Saisissez le nom d'utilisateur et le mot de passe définis précédemment lors de la création de l'instance RabbitMQ. Après vous être connecté à la console de gestion RabbitMQ, nous allons créer une file d'attente. Suivez les étapes ci-dessous pour obtenir votre clé de routage :

1.  Après vous être connecté à la console de gestion, naviguez jusqu'à l'onglet "Queues".
    
2.  Sélectionnez le menu déroulant "Add a new queue" (Ajouter une nouvelle file d'attente).
    
3.  Donnez un nom à la file d'attente ; ce sera votre clé de routage.
    
4.  Sélectionnez "Ajouter une file d'attente".
    

Votre console de gestion devrait maintenant ressembler à ceci :

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

Nous allons maintenant créer un échange pour votre file d'attente. Un échange est l'endroit où les messages sont envoyés. Les échanges prennent les messages et les acheminent vers 0 ou plusieurs files d'attente. L'algorithme de routage dépend du type d'échange et des règles appelées "bindings". Créons un échange.

1.  Naviguez vers l'onglet "Echanges".
    
2.  Sélectionnez l'échange "amqp.direct".
    
3.  Sélectionnez le menu déroulant "Bindings". C'est ici que nous allons lier l'échange à votre file d'attente.
    
4.  Dans l'onglet "To queue", nous voulons écrire "Publisher" car c'est le nom de notre file d'attente.
    
5.  La clé de routage peut être celle que vous préférez. J'ai utilisé "amqp.publisher" pour la mienne.
    

La configuration de votre console RabbitMQ devrait maintenant refléter la configuration de l'échange et de la clé de routage, adaptée à la gestion de données et de notifications en temps réel dans une architecture microservices.

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

Copiez le nom de votre clé de routage et de votre terrain d'échange dans les champs requis de l'action PubNub :

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

Tester votre intégration RabbitMQ avec PubNub E&A
-------------------------------------------------

Nous pouvons utiliser la PubNub Debug Console pour tester notre intégration. Naviguez vers le portail d'administration de PubNub, et sur le côté gauche, sélectionnez "Debug Console". Puisque nous n'avons pas de filtres dans notre Event Listener, chaque fois que nous publions un message sur n'importe quel canal, notre action doit se déclencher et le message PubNub doit être envoyé pour être traité par notre instance RabbitMQ. Il suffit de taper un message et de cliquer sur "Send" sur l'un ou l'autre des clients. Nous allons maintenant vérifier si notre instance RabbitMQ a reçu ce message.

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

Une fois que nous avons publié un message, nous devrions pouvoir le voir apparaître dans la file d'attente "Publisher" dans la RabbitMQ Management Console, ce qui démontre l'efficacité du débit des messages et la robustesse de notre système de messagerie en temps réel. Vous devriez voir votre message dans la console RabbitMQ comme ceci.

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

Dans ce cas, j'ai publié 7 messages, qui sont tous dans la file d'attente, prêts à être traités.

Ce qui suit
-----------

Ce how-to a décrit les étapes pour configurer PubNub Events & Actions et une instance RabbitMQ hébergée pour développer des systèmes de messagerie réactifs garantissant un débit élevé de livraison de messages. Il existe de nombreux cas d'utilisation pour lesquels quelqu'un voudrait traiter ses propres messages PubNub, tels que la définition d'une opération avec l'interactivité en temps réel que PubNub fournit avec vos données connectées à vos serveurs web. Par exemple, en utilisant le [PubNub Unity SDK](https://www.pubnub.com/docs/sdks/unity)le traitement en temps réel des actions de l'utilisateur dans les jeux multijoueurs peut être utilisé pour le matchmaking, les mises à jour en direct de l'état du jeu, les classements et le chat dans le jeu, offrant ainsi une expérience de jeu plus interactive. Il existe de nombreux autres cas d'utilisation pour les applications web. [Javascript](https://www.pubnub.com/docs/sdks/javascript) ou [Java SDK](https://www.pubnub.com/docs/sdks/java).

Bien que cet article ait discuté d'une des actions PubNub que vous pouvez mettre en place avec PubNub E&A, il y en a beaucoup d'autres, qui incluent :

-   [Faire un appel Webhook](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-webhook-action) (c'est-à-dire appeler votre serveur pour chaque événement filtré)
    
-   [Sauvegarder dans SQS](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-sqs-action) (c.-à-d. enregistrer chaque événement dans la file d'attente SQS d'Amazon) [le service de mise en file d'attente SQS d'Amazon](https://aws.amazon.com/sqs/))
    
-   [Envoyer à Kinesis](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kinesis-action) (c.-à-d. envoyer au service d'ingestion d'événements [service d'ingestion d'événements d'Amazon](https://aws.amazon.com/kinesis/))
    
-   [Envoi vers S3](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-s3-action) (c'est-à-dire stocker les données dans un panier [Amazon S3](https://aws.amazon.com/s3/))
    
-   [Envoyer à Kafka](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action) (c'est-à-dire envoyer les données à [Apache Kafka](https://kafka.apache.org/))
    
-   [Créer une action IFTTT](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-ifttt-action) (c'est-à-dire envoyer à [Si Ceci Alors Cela](https://ifttt.com/))
    

N'hésitez pas à contacter l'équipe chargée des relations avec les développeurs à l'adresse devrel@pubnub.com si vous avez des questions ou des préoccupations.

#### Sommaire

[Introduction aux événements et actions PubNubQu'est-ce que](#h-0)[AMQPLes courtiers](#h-1)[et leur rôleQu'est-ce que](#h-2)[RabbitMQCréation d'](#h-3)[une action PubNub RabbitMQ (AMQP](#h-4)[)PrérequisConfiguration](#h-5)[d'une instance RabbitMQConfiguration](#h-6) d'[un écouteur d'événements PubNubConfiguration d](#h-7)'une[action PubNub vers Rabbit MQTester](#h-8)[votre intégration RabbitMQ avec PubNub E&AQu'est-ce](#h-9) qu'il y a de[plus](#h-10) important ?

Comment PubNub peut-il vous aider ?
===================================

Cet article a été publié à l'origine sur [PubNub.com](https://www.pubnub.com/how-to/stream-events-from-pubnub-to-rabbitmq/)

Notre plateforme aide les développeurs à construire, livrer et gérer l'interactivité en temps réel pour les applications web, les applications mobiles et les appareils IoT.

La base de notre plateforme est le réseau de messagerie en temps réel le plus grand et le plus évolutif de l'industrie. Avec plus de 15 points de présence dans le monde, 800 millions d'utilisateurs actifs mensuels et une fiabilité de 99,999 %, vous n'aurez jamais à vous soucier des pannes, des limites de concurrence ou des problèmes de latence causés par les pics de trafic.

Découvrez PubNub
----------------

Découvrez le [Live Tour](https://www.pubnub.com/tour/introduction/) pour comprendre les concepts essentiels de chaque application alimentée par PubNub en moins de 5 minutes.

S'installer
-----------

Créez un [compte PubNub](https://admin.pubnub.com/signup/) pour un accès immédiat et gratuit aux clés PubNub.

Commencer
---------

La [documentation PubNub](https://www.pubnub.com/docs) vous permettra de démarrer, quel que soit votre cas d'utilisation ou votre [SDK](https://www.pubnub.com/docs).