Skip to content

Rabbit MQ Provider / Consumer Services (Docker + Node.js + Express.js)

Notifications You must be signed in to change notification settings

shrp777/rabbitmq_expressjs_provider_consumer_service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rabbit MQ Provider / Consumer Services (Docker + Node.js + Express.js)

Exemple minimal de micro service basé Node.js et Express.js illustrant la communication asynchrone à l'aide de messages basés sur le protocole AMQP et le Message Broker RabbitMQ

Test

RabbitMQ

  • Interface web RabbitMQ http://localhost:15673/ (ou 15672 selon votre config),
  • Identifiant : guest, Mot de passe : guest

Consumer

  • Création et remplissage des fichiers ./mq_consumer_service/.env et ./mq/.env sur la base des fichiers ".env.example" fournis,
  • Création d'une Queue du même nom que celui écouté par le service mq_consumer_service (dans mon exemple the_queue), en vous référant à la valeur de la variable d'environnement MQ_QUEUE renseignée dans ./mq_consumer_service/.env
  • Dans le bloc Consumers, le nom du service mq_consumer_service doit apparaître (cela signifie que le service est bien en écoute de la queue the_queue),
  • Depuis l'onglet Queue, sélectionner la queue nommée the_queue, puis envoyer un message avec un payload au format JSON comme JSON {"message":"Hello, World !"}
  • Observer les logs du service mq_consumer_service pour vérifier que le service réagit bien au message envoyé dans la queue the_queue,
  • Le service mq_consumer_service est directement installé et démarré par Docker, ne pas effectuer de commande npm install ou npm start. Un système de Hot Reloading permet de recharger le service Node.js à chaque modification d'un fichier dans le dossier ./mq_consumer_service,

Provider

  • Création et remplissage des fichiers ./mq_provider_service/.env et ./mq/.env sur la base des fichiers ".env.example" fournis,

  • Le service mq_provider_service est directement installé et démarré par Docker, ne pas effectuer de commande npm install ou npm start. Un système de Hot Reloading permet de recharger le service Node.js à chaque modification d'un fichier dans le dossier ./mq_provider_service,

  • L'Envoi d'une requête HTTP POST sur http://localhost:3334/messages (avec body au format JSON contenant un attribut "message") permet d'envoyer le message contenu dans la requête HTTP à RabbitMQ.

curl --request POST \
  --url http://localhost:3334/messages \
  --data '{"message":"Hello, World!"}'

--

"Logotype Shrp"

Alexandre Leroux
Enseignant / Formateur
Développeur logiciel web & mobile

Nancy (Grand Est, France)

https://shrp.dev

Releases

No releases published

Packages

No packages published