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.
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.
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>
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'
]);
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');
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>
}
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.
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.