1.AMQP, Advanced Message Queuing Protocol, est un standard ouvert pour les protocoles de couche application conçu pour les protocoles orientés messages. middleware.
2.RabbitMQ est une implémentation AMQP open source et le côté serveur est écrit en langage Erlang.
3.Channel
Channel est l'interface la plus importante pour nous pour traiter avec RabbitMQ. La plupart de nos opérations commerciales sont effectuées dans l'interface Channel, y compris Define Queue, définir Exchange, lier la file d'attente et Exchange, publier des messages, etc.
4.Exchange (Le producteur envoie le message à l'Exchange (échange), et l'Exchange achemine le message vers une ou plusieurs files d'attente (ou le rejette), le type d'échange couramment utilisé par RabbitMQ Il existe quatre types : fanout, direct, topic, headers)
5.Queue (objet interne de RabbitMQ, utilisé pour stocker les messages)
6. principe
Le client (producteur) envoie un message -->Exchange (le commutateur enregistre le message dans la file d'attente correspondante via différents types)-->File d'attente
Le client (consommateur) consomme les messages de la file d'attente par abonnement.
Les concepts de base ci-dessus sont compilés à partir de Introduction détaillée aux concepts de base de RabbitMQ
1. Téléchargez et installez erlang (j'utilise la version otp_win64_19.3)
Adresse de téléchargement (choisissez 32 ou 64 bits selon le système d'exploitation)
2. Téléchargez et installez Rabbitmq- serveur (j'utilise C'est la version Rabbitmq-server-3.6.10)
Adresse de téléchargement
Après l'installation, voir
dans le répertoire d'installation
Ensuite, utilisez la commande d'activation DOS
a. cd dans le répertoire sbin. Mon répertoire d'installation est D:RabbitMQServerrabbitmq_server-3.6.10sbin Entrez D: et appuyez sur Entrée. >
b. Commande pour vérifier si l'installation a réussi :rabbitmqctl status
c. Commande du plug-in de gestion :rabbitmq-plugins activate Rabbitmq_management
L'installation est réussie, entrez http://127.0. 0.1:15672/ Entrez le mot de passe invité du compte invité et connectez-vous avec succès. Êtes-vous un peu excité ? Le compte invité est un compte administrateur et peut ajouter des échanges, des files d'attente et un administrateur. Mais nous n'utilisons généralement pas le compte invité et continuons à utiliser des commandes pour ajouter des comptes et des autorisations. d : Ajouter un utilisateur :
rabbitmqctl.bat add_user username password
e : Ajouter le rôle "super administrateur" :Rabbitmqctl.bat set_user_tags nom d'utilisateur administrateur
Le compte mymq est également un super administrateur, peut accéder aux hôtes virtuels : aucun accès, vous Vous pouvez voir qu'aucune machine virtuelle n'est encore accessible. Ensuite, ajoutez la machine virtuelle. f : Ajouter une machine virtuelle :rabbitmqctl add_vhost vhostName
La machine virtuelle myvhost ne fonctionne pas Utilisateurs, liez ensuite un compte à la machine virtuelle. g : Définir les autorisations de la machine virtuelle et des utilisateurs :rabbitmqctl set_permissions -p nom de la machine virtuelle nom du compte ".*" ".*" ".*"
h : Par habitude, je supprime généralement le compte invité :rabbitmqctl.bat delete_user username
D'accord, reconnectez-vous à la page de gestion, tout est normal, et puis la vraie bataille commence.
EasyNetQ dépend de RabbitMQ.Client, il sera donc installé dans le projet.
Le modèle possède une fonctionnalité de file d'attente, qui définit le nom de la file d'attente et Nom d'échange. Utilisez ensuite directement la méthode Publish pour envoyer le message vers la file d'attente spécifiée via le commutateur spécifié par le modèle.
Exécutez le code et jetez un œil à la page de gestion de MQ.
Le commutateur TestQueue.Exchange, Type:topic, Features:D spécifié par Model a été créé. D:Durable indique que le switch créé par défaut est durable.
Le message n'ayant pas encore été abonné, la file d'attente correspondante n'est pas visible dans les files d'attente.
Pourquoi devez-vous ajouter un while(true) au code d'abonnement ? Le but est de simuler le programme console en tant que service Windows, car le programme console s'exécute en un éclair et ne peut pas réellement s'abonner aux messages MQ.
Dans le développement réel, Topself est généralement utilisé pour publier le programme console dans un service Windows. J'écrirai un blog d'apprentissage sur Topself plus tard, quand j'aurai le temps.
Répétez l'opération de publication tout à l'heure pour tester l'ensemble du processus.
De cette manière, le message sera envoyé à l'adresse en commençant par le nom Test dans toutes les files d'attente.
peuvent envoyer des messages à la file d'attente spécifiée via l'envoi et la réception.
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!