Maison >développement back-end >Tutoriel C#.Net >Concepts de base de RabbitMQ et exemples de principes
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. >
rabbitmqctl status
rabbitmq-plugins activate Rabbitmq_management
rabbitmqctl.bat add_user username password
Rabbitmqctl.bat set_user_tags nom d'utilisateur administrateur
rabbitmqctl add_vhost vhostName
rabbitmqctl set_permissions -p nom de la machine virtuelle nom du compte ".*" ".*" ".*"
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!