RabbitMQ
# RabbitMQ

RabbitMQ est un logiciel d'agent de messages open source qui implémente le protocole Advanced Message Queuing (AMQP), mais aussi avec des plugins Streaming Text Oriented Messaging Protocol (STOMP) et Message Queuing Telemetry Transport (MQTT). Le serveur RabbitMQ est écrit dans le langage de programmation Erlang.

## Historique

RabbitMQ fut initialement développé par Rabbit Technologies Ltd., une société créée conjointement par LShift et CohesiveFT en 2007, avant d'être acquis en avril 2010 par SpringSource (en), une division de VMware.

En mai 2013, il incorpora Pivotal Software.

En 2018, il est utilisé dans plus de 35 000 entreprises.

## Composants

Le projet est constitué de :

* Un serveur d'échange RabbitMQ.
* Des passerelles pour protocoles AMQP, HTTP, STOMP, et MQTT.
* Des bibliothèques de client AMQP pour Java, .NET Framework, et Erlang (mais d'autres ont été développés par des tiers).
* Une plateforme de plugin avec une collection prédéfinie, incluant :
   * "Shovel" : réplication de messages entre les agents de messages.
   * "Federation" : partage de messages entre les agents (au niveau exchange).
   * "Management" : monitoring et contrôle des agents et de leurs groupes.

## Exemples d'utilisation

### Python

Cette section propose des exemples de programmes écrits en Python pour l'envoi et la réception de messages à l'aide d'une file d'attente.

**Envoi**

Envoi d'un message dans une queue :

**Réception**

Réception du message :

### PHP

**Producteur**

L'exemple suivant envoie un message JSON directement dans une queue, sans passer par un bus d'échange.

