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.