aperçu
Qu'il s'agisse d'un microservice ou d'une architecture de système distribué, le middleware de file d'attente de messages est un maillon indispensable et important.Le middleware de file d'attente de messages grand public comprend RabbitMQ, RocketMQ, etc.A partir de cet article, nous présenterons en détail les messages représentés par RabbitMQ. .
Protocole AMQP
- Le protocole AMQP est un protocole standard de couche application qui fournit des services de messagerie unifiés. Le middleware client et de messagerie basé sur ce protocole peut transmettre des messages, et il n'est pas limité par différents produits client/middleware et différents langages de développement.
- Le protocole AMQP est un protocole binaire qui fournit une interaction asynchrone, sûre et efficace entre les applications clientes et le middleware de messagerie.
- AMQP, en tant que service de niveau intermédiaire, sépare la production et la consommation des messages. Lorsque le consommateur génère une exception, cela n'affecte pas la consommation du message par le consommateur. Lorsque le consommateur est anormal, le message produit par le producteur peut être stocké dans le mémoire du service ou Le disque n'affectera pas le taux de consommation. Dans le même temps, le message peut également être remis au consommateur spécifié pour être consommé en fonction des règles de routage.
Rôle important du protocole AMQP
1. Producteurs et consommateurs
- Le producteur est le sujet de produire des messages, et le consommateur est le sujet de consommer des messages
- Intégration des données et découplage du système, traitement asynchrone et événementiel, trafic Xuefeng, cohérence éventuelle des messages de transaction et des transactions distribuées
- Le producteur produit un message et le lance au courtier de messages, et le courtier de messages transmet le message au consommateur conformément aux règles de livraison
2. Commutateur
- Un commutateur est comme un routeur pour un courtier de messages. Après avoir reçu un message, il l'achemine vers une ou zéro file d'attente selon certaines règles (clés de routage). Le commutateur a plusieurs modes de routage.
- En fonction du producteur de messages et des règles de routage, le message peut être remis à la file d'attente de messages spécifiée. Le commutateur reçoit le message remis par le producteur et, en fonction de la règle de routage et de la relation de liaison de file d'attente, il correspond au commutateur ou à la file d'attente correspondant à la remise pour distribution. Le commutateur ne stocke pas le message. Il suffit de retweeter
Type de commutateur :
- Directement connecté au commutateur : livrer à la file d'attente correspondante en fonction de la correspondance exacte de la clé de routage
- Commutateur en forme d'éventail : quelle que soit la clé de routage, le message est copié et acheminé vers toutes les files d'attente qui lui sont liées, offrant un effet de diffusion.
- Changement de sujet : livrer à la file d'attente correspondante en fonction de la clé de routage en fonction de la correspondance de modèle
- Le commutateur a également ses propres attributs, vous pouvez définir votre propre nom, qu'il soit persistant ou non, et d'autres options.
3. File d'attente
- La file d'attente est un emplacement de stockage temporaire pour les messages. Si au moins un consommateur s'abonne à la file d'attente, le message sera immédiatement envoyé à ces consommateurs abonnés. Cependant, si le message atteint une file d'attente d'abonnement sans personnel, le message attendra dans la file d'attente. Les consommateurs distribuent ensuite.
- Il existe une relation de liaison entre Exchange et Message Queue. Une fois le message arrivé à Exchange, le message peut être remis à la file d'attente de messages liée en fonction de la stratégie de routage basée sur la stratégie de routage.
- Les files d'attente de messages stockent les messages en mémoire ou sur le disque et transfèrent ces messages à un ou plusieurs consommateurs dans un certain ordre. Chaque file d'attente de messages est isolée indépendamment et n'affecte pas les autres.
- Les files d'attente de messages ont différents attributs (privé, partagé, persistant, temporaire, défini par le client ou défini par le serveur, etc.), et le type correspondant peut être sélectionné en fonction des besoins réels
4. Message
- Le message est le porteur d'informations et une entité du protocole AMQP.Le message se compose de deux parties
- Charge utile : les informations réelles, tout contenu que vous souhaitez transmettre, cette partie du contenu est transparente pour le courtier de messages
- Méta-informations : y compris les attributs de message tels que la clé de routage, le type de contenu, le codage et la persistance, etc., qui seront analysés par l'agent de message. L'agent de message livrera et stockera le message en fonction des attributs de message. Cette partie est liée par l'agent de messagerie, et les consommateurs s'en fichent.
5. Canal
- Le canal réseau est un lien léger construit sur le lien de connexion. Presque toutes les opérations sont effectuées dans le canal. Le canal est un canal de lecture et d'écriture de messages. Le client peut établir un lien vers chaque canal, et chaque canal représente une session tâche.
- N'importe quel nombre de canaux peut être créé sur une connexion