Développement de la section Utilisation

This commit is contained in:
Mathieu Gauthier-Pilote 2022-10-21 09:36:19 -04:00
parent f668c0fb66
commit 68353450be

View file

@ -82,6 +82,57 @@ Si l'on veut que RabbitMQ n'écoute que sur l'interface *localhost* :
ulimit -n 2048
~~~
## Utilisation
La documentation officielle propose un [ensemble de tutoriels](https://www.rabbitmq.com/getstarted.html) pour Python, Java, Ruby, PHP, etc.
Les lignes suivantes proposent un cas d'utilisation minimal avec un émetteur, une queue et un récepteur, le tout illustré en PHP. (Voir [ici](https://www.rabbitmq.com/tutorials/tutorial-one-php.html) pour la source d'inspiration).
Prérequis : une instance du serveur RabbitMQ en local sur le port standard (5672), php 7/8 et composer.
Dans un dossier de travail (par exemple `~/src/lapin`), éditer un nouveau fichier `composer.json` avec ce contenu :
~~~
{
"require": {
"php-amqplib/php-amqplib": ">=3.0"
}
}
~~~
Installer `php-amqplib` (un client pour RabbitMQ) avec la commande suivante :
~~~
$ composer install
~~~
Récupérer les fichiers `send.php` et `receive.php` dans le dépôt officiel des tutoriels de rabbitmq :
~~~
$ wget https://raw.githubusercontent.com/rabbitmq/rabbitmq-tutorials/main/php/send.php
$ wget https://raw.githubusercontent.com/rabbitmq/rabbitmq-tutorials/main/php/receive.php
~~~
On voit dans le code que le récepteur (fichier `receive.php`) :
- établie une nouvelle connexion au serveur RabbitMQ en tant qu'invité
- ouvre un canal et déclare une queue qui sera suivie
- se met en attente de messages à recevoir
De son côté l'émetteur (fichier `send.php`) :
- établie une nouvelle connexion au serveur RabbitMQ en tant qu'invité
- ouvre un canal et déclare une queue (la même que le récepteur)
- construit un message `Hello World!` et le publie dans le canal
On peut obtenir des infos sur les queues gérées par RabbitMQ avec la commande suivante :
~~~
# rabbitmqctl list_queues
~~~
Note : en production, avec PHP, il est recommandé d'utiliser [amqproxy](https://github.com/cloudamqp/amqproxy) pour une meilleure persistance des connexions.
## Management RabbitMQ
### rabbitmqctl