Position actuelle: Accueil> Derniers articles> Comment implémenter des messages fiables à l'aide de PHP et RabbitMQ: de l'installation au code Exemple

Comment implémenter des messages fiables à l'aide de PHP et RabbitMQ: de l'installation au code Exemple

M66 2025-06-21

Aperçu

Dans le développement des applications modernes, la messagerie est devenue un mécanisme de communication important. RabbitMQ, en tant que middleware de file d'attente de messages populaire, peut nous aider à réaliser des messages efficaces et fiables. Cet article vous guidera sur la façon de mettre en œuvre ce mécanisme de messagerie à l'aide de PHP et RabbitMQ, tout en fournissant des exemples de code pour vous aider à démarrer rapidement.

Installer Rabbitmq

Tout d'abord, nous devons installer RabbitMQ. Vous pouvez sélectionner le package d'installation correspondant en fonction de votre système d'exploitation et l'installer en fonction des étapes de la documentation officielle. Une fois l'installation terminée, assurez-vous que le service RabbitMQ a été démarré avec succès.

Installez l'extension PHP AMQP

Pour que PHP communique avec RabbitMQ, nous devons installer l'extension AMQP. Vous pouvez utiliser la commande suivante pour installer:
# Utilisez la commande PECL pour installer $ PECL Installer AMQP
# Utilisez le compositeur pour installer $ Composer nécessite PHP-AMQPLIB / PHP-AMQPIB

Connectez-vous à Rabbitmq

Lors de la connexion de RabbitMQ dans PHP, vous devez fournir les paramètres de connexion nécessaires, y compris l'hôte, le port, le nom d'utilisateur et le mot de passe, etc. Voici l'exemple de code pour établir la connexion:
require_once __dir__. «/ vendeur/autoload.php»;

$ connection = new phpamqplib \ connection \ amqpStreamConnection (
    «Localhost», 5672, «invité», «invité»
));

$ canal = $ connection-> canal ();

Créer une file d'attente de messages

Lorsque vous utilisez RabbitMQ, vous devez d'abord créer une file d'attente pour stocker les messages. Le code suivant montre comment créer une file d'attente dans PHP:
$ queuename = 'my_queue'; // Nom de la file d'attente $ canal-> queue_declare ($ queuename, false, true, false, false);

Envoyer un message

Nous pouvons envoyer des messages à la file d'attente créée avec le code suivant:
$ msg = new phpamqplib \ message \ amqpMessage ('Hello Rabbitmq!');
$ channel-> Basic_publish ($ msg, '', $ queuename);

Recevez le message et confirmez

La réception de messages se fait par le biais du consommateur. Voici l'exemple de code pour le consommateur:
$ callback = fonction ($ msg) {
    Echo 'Message reçu:'. $ msg-> corps. "\ n";
    $ msg-> Delivery_info ['Channel'] -> Basic_ack ($ msg-> Delivery_info ['Delivery_Tag']);
};

$ channel-> Basic_consume ($ queuename, '', false, true, false, false, $ callback);

while (count ($ canal-> rappel)) {
    $ canal-> wait ();
}

Dans ce code, nous créons une fonction de rappel pour recevoir et traiter les messages. Après le traitement du message, la méthode Basic_ack est utilisée pour confirmer que le message a été traité avec succès, afin que le message ne soit pas perdu même si le consommateur échoue.

Fermer la connexion

Après avoir terminé la messagerie, n'oubliez pas de fermer la connexion à RabbitMQ:
$ canal-> close ();
$ connection-> close ();

Résumer

En combinant PHP avec RabbitMQ, nous pouvons facilement implémenter des mécanismes de messagerie fiables. Cet article décrit comment installer les extensions RabbitMQ et AMQP, et montre en détail comment utiliser PHP pour la création de files d'attente, l'envoi de messages et la réception. J'espère que cet article vous sera utile de comprendre et d'utiliser RabbitMQ pour améliorer la fiabilité de votre application.