Maison >développement back-end >PHP7 >Comment développer une file d'attente de messages en PHP7.0 ?
Avec l'avancement et le développement continus de la technologie Internet, afin d'assurer l'efficacité et la stabilité de la technologie, divers moyens techniques sont constamment proposés et appliqués. Parmi eux, la technologie Message Queue (ci-après dénommée MQ) est actuellement le moyen technique le plus populaire et le plus utilisé. MQ vise à résoudre le problème de la communication asynchrone entre les différents modules du système, permettant un couplage lâche et une meilleure évolutivité entre les applications. Cet article explique comment développer une file d'attente de messages en PHP7.0.
1. Notions de base de MQ
1. Concept de file d'attente de messages
MQ est une technologie de transmission de messages ou de traitement asynchrone. Les files d'attente de messages permettent une communication faiblement couplée entre les expéditeurs et les destinataires, améliorant ainsi l'interconnectivité et la maintenabilité entre les applications. MQ utilise un middleware tiers pour envoyer des messages à la file d'attente via des producteurs, et les consommateurs extraient les messages de la file d'attente pour les consommer. MQ peut être utilisé dans des systèmes distribués, des systèmes à haute concurrence et des scénarios de retard de données.
2. Type de file d'attente de messages
MQ contient plusieurs types :
P2P : Communication point à point, le producteur envoie des messages à une file d'attente , reçu et consommé par un consommateur, ce qui peut garantir la fiabilité de la livraison des messages.
Pub/Sub : Modèle de publication-abonnement. Les producteurs publient des messages sur des sujets et les abonnés s'abonnent aux messages des sujets et les consomment, ce qui permet d'obtenir une élasticité et une évolutivité de la transmission des messages.
3. Composants MQ
MQ est principalement composé des composants suivants :
Message : l'unité de base du message
#🎜 🎜#Producteur : Le producteur du message Consumer : Le consommateur du message Queue : Zone de stockage des messages Exchange : Routage des messages # 🎜🎜## 🎜🎜#Relation de liaison de message2 Comment développer MQ en PHP7.01 Installer RabbitMQ. RabbitMQ est une implémentation MQ populaire qui peut prendre en charge les modes P2P et Pub/Sub, prend en charge le développement dans plusieurs langages de programmation et est très facile à utiliser. L'utilisation de RabbitMQ dans PHP7.0 nécessite l'installation de l'extension PHP-AMQP. Les étapes sont les suivantes : (1) Téléchargez et décompressez RabbitMQ, l'adresse officielle du site Web est la suivante : http://www.rabbitmq.com/ (2 ) Installez Erlang : RabbitMQ est basé sur Erlang Pour le développement du langage, veuillez d'abord installer l'environnement Erlang (3) Démarrez le serveur RabbitMQ : $ sudo Rabbitmq-server#🎜 🎜#(4) Installez PHP- Extension AMQP :
$ pecl install amqp
Une fois l'installation terminée, ajoutez les éléments de configuration suivants dans le php. ini : extension=amqp.so
#🎜🎜 #(5) Redémarrez le serveur Web pour vous assurer que la configuration de l'extension PHP-AMQP prend effet 2.Pour utiliser RabbitMQ côté PHP, vous devez installer l'extension amqp et composer, puis installer le package amqp .
(1) Installer le package amqp
$ composer nécessite php-amqplib/php-amqplib
(2) Code du producteur
# 🎜🎜#Ce qui suit est un code producteur PHP pour envoyer des messages à la file d'attente : Tout d'abord, vous devez instancier le client, comme suit : $connection = new AMQPConnection ();$connection->setHost('localhost');
$connection->setPort('5672');$connection->setLogin('guest' ) ;
$connection->setPassword('guest');$connection->connect();
Mise en place de l'envoi de messages :
#🎜 🎜 #$exchange = 'test-exchange';
$queue = 'test-queue';
$message = 'Hello World';
try {
$channel = new AMQPChannel($connection); $exchange = new AMQPExchange($channel); $exchange->setName($exchange); $exchange->setType(AMQP_EX_TYPE_DIRECT); $exchange->declareExchange(); $queue = new AMQPQueue($channel); $queue->setName($queue); $queue->setFlags(AMQP_DURABLE); $queue->declareQueue(); $queue->bind($exchange->getName(), $queue->getName()); $exchange->publish($message, $queue->getName());#🎜🎜 # }catch (AMQPException $e) {
var_dump($e);}
$connection->disconnect();
Dans le code ci-dessus, créé A file d'attente test-queue et un échange test d'échangeur, puis lient la file d'attente et l'échangeur, puis envoient le message.
Ce qui suit est un code consommateur pour consommer les messages de la file d'attente :
Tout d'abord, connectez le client Instancier comme suit :
$connection->setHost('localhost');
$connection->setPort('5672 ');# 🎜🎜#$connection->setLogin('guest');$connection->setPassword('guest');
$connection->connect();#🎜 🎜##🎜 🎜#Mise en place de la consommation des messages : $exchange = 'test-exchange';$queue = 'test-queue';
try {#🎜🎜 #$channel = new AMQPChannel($connection); $exchange = new AMQPExchange($channel); $exchange->setName($exchange); $exchange->setType(AMQP_EX_TYPE_DIRECT); $exchange->declareExchange(); $queue = new AMQPQueue($channel); $queue->setName($queue); $queue->setFlags(AMQP_DURABLE); $queue->declareQueue(); $queue->bind($exchange->getName(), $queue->getName()); $queue->consume(function(AMQPEnvelope $message, AMQPQueue $queue) { echo $message->getBody(); $queue->ack($message->getDeliveryTag()); });#🎜 🎜#}
catch (AMQPException $e) {
var_dump($e);
3. Résumé
Cet article présente comment développer MQ en PHP7.0. Tout d'abord, vous devez installer les extensions RabbitMQ et PHP-AMQP ; deuxièmement, vous devez installer composer et installer le package amqp ; enfin, écrire du code pour implémenter l'envoi et la consommation de messages. L'émergence de la technologie MQ offre une méthode de transmission de messages plus pratique et plus efficace pour les applications Internet, en particulier dans les scénarios à forte concurrence et les systèmes distribués, MQ est un élément indispensable. En étudiant cet article, j'espère que les lecteurs pourront comprendre les étapes spécifiques et les méthodes de mise en œuvre du développement MQ dans PHP7.0, et fournir une référence pour essayer la technologie MQ dans leurs propres applications métier.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!