RabbitMQ - Solution Message-Oriented Middleware


Utilisation

Configuration

La configuration de RabbitMQ peut s'effectuer par l'intermédiaire de deux fichiers :

Une configuration par défaut est fournie à l'installation de RabbitMQ. Il n'est donc pas nécessaire de configurer ces deux fichiers pour lancer un simple serveur. Dans les prochaines versions de RabbitMQ, ces deux fichiers de configuration devraient être réunis en un seul, afin de tout centraliser.

Fichier rabbitmq-env.conf

Le fichier rabbitmq-env.conf permet de définir les variables d'environnement de RabbitMQ, situé sous Linux à l'emplacement /etc/rabbitmq. C'est un script shell, qui surcharge les variables du script de démarrage de RabbitMQ. L'ordre de préférence du chargement de ces variables est :

  1. Environnement du système (définit avec export)
  2. Fichier rabbitmq-env.conf
  3. Script de démarrage de RabbitMQ (variables par défaut)
La construction du fichier est simple. Il suffit de récupérer la variable à définir, de lui supprimer le préfixe RABBITMQ_ puis de lui affecter une valeur. Par exemple, pour configurer la variable RABBITMQ_NODENAME, définissant le nom du noeud Erlang (noeud = instance d'un broker), le fichier pourra contenir :

NODENAME=aurelia_node

Il y a beaucoup de variables configurables. Voici un tableau listant quelques unes de ces variables :

Variable Description
RABBITMQ_NODE_IP_ADDRESS Adresse IP du noeud. Par défaut une string vide pour correspondre à toutes les interfaces réseaux
RABBITMQ_NODE_PORT Port du noeud. Par défaut 5672.
RABBITMQ_BASE Répertoire contenant les répertoires de base de données et de log. Par défaut /var/lib/rabbitmq.
RABBITMQ_MNESIA_BASE Répertoire contenant les fichiers de la base données Mnesia, permettant de stocker les objets persistants du broker. Par défaut /var/lib/rabbitmq/mnesia.
RABBITMQ_LOG_BASE Répertoire contenant les fichiers de log générés par le broker. Par défaut /var/log/rabbitmq.

Fichier rabbitmq.config

Le fichier rabbitmq.config permet de configurer les paramètres de l'application RabbitMQ, les services Erlang (cluster) et les différents plugins installés. Il est placé, sous Linux, à l'emplacement /etc/rabbitmq, soit le même répertoire que le fichier rabbitmq-env.conf.

Tout comme pour le premier fichier de configuration, il existe beaucoup de paramètres à configurer. Voici, un exemple de configuration d'une liste de port écoutée par le broker RabbitMQ:

[ {rabbit, [{tcp_listeners, [5673,5674]}]} ].

Cette configuration indique au broker d'écouter sur les ports 5673 et 5674, en plus du port par défaut 5672.



Commandes

Pour utiliser le broker, il faut tout d'abord le démarrer. La commande permettant cette action est :

/sbin/service rabbitmq-server start

Il est aussi possible avec cette commande d'arrêter et de redémarrer le broker.

Pour manipuler le broker, il existe une autre commande qui est la commande rabbitmqctl. La structure de la commande est la suivante :

rabbitmqctl [-n noeud] [-q] {commande} [options...]

Les différents arguments signifient :

Voici un échantillon d'actions que l'on peut effectuer sur le broker :

Commande Paramètres Action Exemple
status Informations du noeud courant, comme les versions de RabbitMQ et de Erlang. rabbitmqctl status
add-user {nom} {password} Créé un utilisateur. rabbitmqctl add-user aurelia mypassword
add_vhost {chemin du virtual host} Créé un nouveau virtual host. Il existe par défaut le virtual host "/". rabbitmqctl add_vhost test
set_permissions [-p chemin du virtual host] {nom utilisateur} {pattern accès config} {pattern accès écriture} {pattern accès lecture} Affecte des permissions à un utilisateur sur un virtual host (par défaut "/"). rabbitmqctl set_permissions /test aurelia "^aurelia-.*" ".*" ".*"
list_permissions [-p chemin du virtual host] Liste les utilisateurs ayant des droits d'accès sur le virtual host définit (par défaut "/") et leurs permissions sur les ressources du virtual host. rabbitmqctl list_permissions /test