Concepts de base de RabbitMQ et exemples de principes

零下一度
Libérer: 2017-06-23 16:35:14
original
3140 Les gens l'ont consulté

Concepts et principes de base de RabbitMQ

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

Installation de RabbitMQ dans le système Windows

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.

Utilisation de base d'EasyNetQ

Installer EasyNetQ dans le projet

EasyNetQ dépend de RabbitMQ.Client, il sera donc installé dans le projet.

Publier un message

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.

Message d'abonnement

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.

Sujet personnalisé

De cette manière, le message sera envoyé à l'adresse en commençant par le nom Test dans toutes les files d'attente.

Envoyer et Recevoir

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal