Le mode de sujet de RabbitMQ est similaire au mode de routage, mais la différence réside dans le fait que le mode de sujet prend en charge la correspondance floue avec des jokers, tandis que le mode de routage ne prend en charge que la correspondance exacte.

Diagramme d'architecture

Mode de sujet

Explication :

  1. P représente le producteur, X représente l'échange, et les queues rouges Q1, Q2 représentent les files d'attente, C1, C2 représentent les consommateurs.
  2. Le type d'échange est de sujet.
  3. Logique de transfert de message d'échange de sujet : Il met en correspondance la clé de routage du message avec les clés de routage associées à tous les liens de l'échange via une correspondance floue, et s'il y a une correspondance, il envoie le message à la file liée.

Astuce : La différence entre le mode de sujet et le mode direct réside dans le support de la correspondance de la clé de routage avec des jokers, tout le reste est identique.

Les jokers pris en charge par le mode de sujet sont les suivants :

  • # (hash) met en correspondance un ou plusieurs mots
  • * (astérisque) correspond à un seul mot

Par exemple : La clé de routage liée à la file Q1 = *.orange.* La clé de routage liée à la file Q2 = *.*.rabbit et lazy.#

Si la clé de routage du message est "quick.orange.rabbit", cela correspond aux files Q1 et Q2.

Astuce : Si la clé de routage ne correspond à aucune file, le message sera rejeté. Si la clé de routage est vide, il fonctionne de la même manière que le mode de diffusion et transmet le message directement à toutes les files.

Cas d'utilisation

Comme pour le mode de routage, la différence réside dans la flexibilité des conditions d'abonnement, en particulier dans les règles de correspondance plus flexibles pour la clé de routage.