web-dev-qa-db-fra.com

Quelle est la responsabilité d'un courtier JMS dans le système JMS Eco?

Je lisais cette question et la réponse correspondante et j'ai été confondu par le terme courtier JMS dans la première ligne de la réponse:

MS (ActiveMQ est une implémentation de courtier JMS)

Je veux savoir ce qu'est exactement un JMS broker et quelles sont ses responsabilités?

page Wikipedia sur JMS énumère plusieurs éléments dans l'écosystème JMS mais ne mentionne pas les courtiers en tant que tels.

37
Geek

Il n'y a pas vraiment de définition officielle de ce qu'est un courtier JMS, mais il existe une différence conceptuelle entre une file d'attente de messages et un courtier. Voici mon point de vue à ce sujet.

  • Une file d'attente de messages examine uniquement les en-têtes de message pour déterminer où envoyer le message, la file d'attente de messages n'examine pas le corps du message ni n'exécute de code qui transforme le contenu du corps du message. La mission de la file d'attente de messages consiste à livrer le message, éventuellement, une fois et une seule fois, et afin qu'il soit envoyé.
  • Un courtier de messages fournit un environnement de programmation où vous pouvez écrire du code de transformation de message facilement et efficacement. Par exemple, vous devrez peut-être transformer le contenu d'un message du format A au format B et vous ne voulez pas que les anciens clients qui utilisent le format A doivent être réécrits afin d'écrire un programme de traduction de messages et de le déployer dans le message courtier. Dans ce cas, le message broker sera un processus distinct, éventuellement exécuté sur une machine distincte chargée d'exécuter le code de traitement des messages.

La grande valeur des courtiers de messages est qu'ils peuvent faire des choses vraiment sympas pour vous pour la gestion simultanée des messages, le basculement pour la logique de traitement, le déploiement de la logique de traitement, la surveillance et la journalisation ... etc. Considérez un courtier de messages comme un spécialiste serveur d'application pour l'écriture de code de traitement des messages, éventuellement dans un langage personnalisé de haut niveau. Par exemple, IBM Message Broker peut être programmé dans un ESQL, une extension de SQL avec des diagrammes et des nœuds que vous connectez les uns aux autres. Les programmes écrits pour un borker de messages seront plus courts que si vous écriviez vous-même tout le code à l'aide de JMS standard.

Les courtiers peuvent être centralisés ou distribués, par exemple, vous pouvez avoir un courtier central à New York, et avoir des clients à Londres et à Hong Kong connectés. Ou vous pouvez faire distribuer le courtier et avoir une instance en cours d'exécution à Londres et à Hong Kong qui traite le message plus près de la source/destination du message, tout dépendra de votre infrastructure de gestion et des autres ressources comme les bases de données du courtier de messages a besoin de parler.

51
ams