Building Blocks
Un guide visuel et interactif du routage RabbitMQ
Comprenez les Exchanges, Queues et Bindings de RabbitMQ à travers des simulateurs interactifs.
— 5 min de lecture — 4 simulateurs interactifs
Building Blocks
Comprenez les Exchanges, Queues et Bindings de RabbitMQ à travers des simulateurs interactifs.
— 5 min de lecture — 4 simulateurs interactifs
Comment un message envoyé par un service arrive-t-il au bon destinataire dans une architecture distribuée ? On installe , on ouvre la doc, et on tombe immédiatement sur : , , , .
Dans cet article, on va comprendre chacun de ces termes, avec des simulateurs interactifs.
Mais d'abord, un point important.
Dans RabbitMQ, un ne sait pas quelles existent. Il n'envoie pas un message à une . Il l'envoie à un . C'est lui qui décide où va le message.
Pensez à un bureau de poste. Quand vous déposez une lettre dans une boîte aux lettres, vous ne la livrez pas vous-même. Vous la confiez au service postal (l'), qui lit l'adresse (la ) et la met dans le bon camion de livraison (la ). Un récupère ensuite le message dans la et le traite.
Le type d' le plus simple. Un message avec la pdf_create va dans la dont le a la pdf_create. Un , c'est le lien entre un et une . C'est ce qui dit à l' "envoie les messages correspondants ici." Correspondance exacte, rien de plus. Si aucune ne correspond, le message est silencieusement supprimé.
Un ignore complètement la . Il copie chaque message dans toutes les qui lui sont liées.
Pas besoin d'adresse. Chaque camion reçoit une copie.
Utilisez-le quand un événement concerne tous vos services : une invalidation de cache, un rechargement de config, une alerte globale.
Un fait correspondre les à des en utilisant des mots séparés par des points et deux wildcards :
* correspond à exactement un mot# correspond à zéro ou plusieurs motsAinsi, logs.error.auth correspondrait à logs.*.auth et logs.#, mais pas à logs.error.
* et # pour un routage par pattern. Les plus expressifs, avec le plus de pièges.Cet article fait partie de la série "Building Blocks".