Quelle est la différence entre un MessageListener et un Consumer dans JMS?
Je suis nouveau sur JMS
. Que j'ai compris Consumers
sont capables de prendre des messages de la file d'attente/sujet. Alors, pourquoi avez-vous besoin d'une MessageListener
parce que Consumers
permettra de savoir quand ils ont ramassé des messages? Qu'est-ce que l'utilisation pratique d'un tel MessageListener
?
Edit:a Partir de la Javadoc de MessageListener:
Un MessageListener objet est utilisé pour recevoir de manière asynchrone livré
les messages.Chaque session doit s'assurer qu'il transmet des messages en série pour l'
auditeur. Cela signifie qu'un auditeur attribué à un ou plusieurs consommateurs
de la même session peut supposer que la onMessage méthode n'est pas appelée
avec le message suivant jusqu'à ce que la session a terminé le dernier appel.
Donc je suis confus entre l'utilisation de ces termes de manière asynchrone et en série ensemble. Comment ces deux termes se rapportent dans la description de la fonctionnalité de MessageListener
?
source d'informationauteur Geek
Vous devez vous connecter pour publier un commentaire.
La différence est que MessageConsumer est utilisé pour recevoir des messages de manière synchrone:
Pour la livraison asynchrone, nous pouvons enregistrer un MessageListener objet avec un message de consommation:
de la docs:
Une différence majeure conformément à ma connaissance ne l'a pas déclaré dans les autres réponses, c'est que MessageConsumer pouvez faire usage de
MessageSelectors
et a donc la capacité à consommer les messages qu'elle souhaite, où queMessageListener
sera à l'écoute de tous les messages.De l'J2EE tutoriel doc http://docs.oracle.com/javaee/5/tutorial/doc/bnceh.html