Position actuelle: Accueil> Derniers articles> Comment implémenter la publication de messages et le mode d'abonnement à l'aide de PHP et Rabbitmq

Comment implémenter la publication de messages et le mode d'abonnement à l'aide de PHP et Rabbitmq

M66 2025-06-07

Comment implémenter la publication de messages et le mode d'abonnement à l'aide de PHP et Rabbitmq

RabbitMQ est un système de file d'attente de messages haute performance et fiable. Combiné avec PHP, un langage de script côté serveur populaire, il peut facilement implémenter les fonctions de publication de messages et d'abonnement. Cet article vous amènera à compléter l'intégration de PHP et de RabbitMQ étape par étape, avec un exemple de code clair pour vous aider à créer rapidement un mécanisme de messagerie.

Installer Rabbitmq

Tout d'abord, vous devez installer RabbitMQ sur le serveur. Vous pouvez vous rendre sur le site officiel de RabbitMQ pour télécharger le package d'installation adapté au système et compléter l'installation et la configuration de base en fonction des documents officiels.

Installez l'extension AMQP pour PHP

Le RabbitMQ opérationnel dans PHP nécessite l'utilisation de l'extension AMQP. L'extension peut être installée par:

 <span class="fun">sudo apt-get install php-amqp</span>

Configurer les informations de connexion RabbitMQ

Lorsque vous vous connectez au serveur RabbitMQ, vous devez configurer les paramètres de connexion pertinents. L'exemple suivant utilise la configuration de connexion locale par défaut:

 $connection = new AMQPConnection([
    'host' => 'localhost',
    'port' => '5672',
    'vhost' => '/',
    'login' => 'guest',
    'password' => 'guest'
]);

Déclarer l'échange et la file d'attente

Dans RabbitMQ, les messages sont acheminés vers la file d'attente spécifiée via Exchange. L'échange est responsable de la distribution des messages et la file d'attente est responsable du stockage et de la consommation de messages.

L'exemple suivant déclare un échange nommé test_exchange et un test_queue :

 $channel = $connection->channel();
<p>$channel->exchange_declare('test_exchange', 'fanout', false, false, false);</p>
<p>list($queue_name, ,) = $channel->queue_declare('test_queue', false, false, true, false);</p>
<p>$channel->queue_bind($queue_name, 'test_exchange');

Publier et abonner aux messages

Maintenant, commencez à publier des messages et abonnez-vous et consommez via une file d'attente spécifiée. Les exemples sont les suivants:

 $message = 'Hello, RabbitMQ!';
<p>$channel->basic_publish(<br>
new AMQPMessage($message),<br>
'test_exchange',<br>
''<br>
);</p>
<p>echo " [x] Sent '$message'\n";</p>
<p>$channel->basic_consume(<br>
$queue_name,<br>
'',<br>
false,<br>
true,<br>
false,<br>
false,<br>
function($msg) {<br>
echo ' [x] Received ', $msg->body, "\n";<br>
}<br>
);</p>
<p>while (count($channel->callbacks)) {<br>
$channel->wait();<br>
}

Exécutez l'exemple de code

Enregistrez le code ci-dessus en tant que fichier PHP, tel que Example.php , et exécutez-le via le terminal:

 <span class="fun">Exemple php.php</span>

Vous pouvez voir la sortie de l'édition et de l'abonnement des messages, indiquant que le mécanisme de livraison de messages a été exécuté avec succès.

Résumer

Cet article présente comment combiner PHP et RabbitMQ pour implémenter la publication et l'abonnement des messages, couvrant des étapes détaillées de la construction de l'environnement à la mise en œuvre du code. Avec l'aide du système de file d'attente de messages haute performance de RabbitMQ, les applications PHP peuvent réaliser des messages flexibles et fiables, fournissant une base solide pour les systèmes distribués complexes.