Je me demandais quelle est la différence entre une file d'attente JMS et un sujet JMS.
La page ActiveMQ dit
Les sujets
Dans JMS, une rubrique implémente la sémantique de publication et d'abonnement . Lorsque vous publiez un message, il est envoyé à tous les abonnés intéressés - donc zéro à plusieurs abonnés recevront une copie du message. Seuls les abonnés qui avaient un abonnement actif au moment où le courtier reçoit le message recevront une copie du message.
Files d'attente
Une file d'attente JMS implémente la sémantique de l' équilibreur de charge . Un seul message sera reçu par exactement un consommateur. Si aucun consommateur n'est disponible au moment de l'envoi du message, il sera conservé jusqu'à ce qu'un consommateur soit disponible pour traiter le message. Si un consommateur reçoit un message et ne l'accuse pas avant la fermeture, le message sera renvoyé à un autre consommateur. Une file d'attente peut avoir de nombreux consommateurs dont la charge des messages est équilibrée entre les consommateurs disponibles.
Je veux avoir «quelque chose» qui enverra une copie du message à chaque abonné dans la même séquence que celle dans laquelle le message a été reçu par le courtier ActiveMQ.
Des pensées?
Les sujets concernent le modèle éditeur-abonné, tandis que les files d'attente concernent le point à point.
la source
Une rubrique JMS est le type de destination dans un modèle de distribution 1-à-plusieurs. Le même message publié est reçu par tous les abonnés consommateurs . Vous pouvez également appeler cela le modèle «diffusion». Vous pouvez considérer un sujet comme l'équivalent d'un sujet dans un modèle de conception Observer pour l'informatique distribuée. Certains fournisseurs JMS choisissent efficacement de l'implémenter en tant qu'UDP au lieu de TCP. Pour le sujet, la remise du message est «feu et oublie» - si personne n'écoute, le message disparaît tout simplement. Si ce n'est pas ce que vous voulez, vous pouvez utiliser des «abonnements durables».
Une file d'attente JMS est une destination 1 pour 1 des messages. Le message est reçu par un seul des destinataires consommateurs (veuillez noter: l'utilisation systématique d' abonnés pour les clients de rubrique et de récepteurs pour les clients de file d'attente évite toute confusion). Les messages envoyés à une file d'attente sont stockés sur le disque ou la mémoire jusqu'à ce que quelqu'un le récupère ou qu'il expire. Les files d'attente (et les abonnements durables) ont donc besoin d'une gestion active du stockage, vous devez penser aux consommateurs lents.
Dans la plupart des environnements, je dirais que les sujets sont le meilleur choix car vous pouvez toujours ajouter des composants supplémentaires sans avoir à changer l'architecture. Les composants ajoutés pourraient être la surveillance, la journalisation, l'analyse, etc. Vous ne savez jamais au début du projet à quoi ressembleront les exigences dans 1 an, 5 ans, 10 ans. Le changement est inévitable, acceptez-le :-)
la source
C'est aussi simple que ça:
la source
notificationProcessor
(envoie une notification à l'affiche),karmaProcessor
(donne du karma au liker et à l'affiche),feedProcessor
(déplace les notes vers le haut dans les flux des gens). Le tout de manière asynchrone bien sûr.Quant à la conservation des commandes, consultez cette page ActiveMQ . En bref: la commande est conservée pour les consommateurs uniques, mais avec plusieurs consommateurs, l'ordre de livraison n'est pas garanti.
la source
Files d'attente
Avantages
Les inconvénients
Les sujets
Avantages
Les inconvénients
la source
Si vous avez N consommateurs, alors:
Les rubriques JMS remettent des messages à N sur N files d'attente JMS remettent des messages à 1 sur N
Vous avez dit que vous «cherchez à avoir un 'objet' qui enverra une copie du message à chaque abonné dans le même ordre que celui dans lequel le message a été reçu par le courtier ActiveMQ».
Vous souhaitez donc utiliser un thème pour que tous les abonnés N reçoivent une copie du message.
la source
TOPIC :: topic is one to many communication ... (multipoint ou publier / s'abonner) EX: -imaginez qu'un éditeur publie le film dans le youtub puis tous ses abonnés recevront une notification .... QUEVE :: queve is one-to -une communication ... Ex: -Lorsque vous publiez une demande de recharge, elle ira à un seul qreciever ... rappelez-vous toujours si la demande est envoyée à tous les qreceivers, puis plusieurs recharges se sont produites lors du développement de l'analyse qui convient à une application
la source
La file d'attente est un objet géré JMS utilisé pour conserver les messages en attente de consommation par les abonnés. Lorsque tous les abonnés ont consommé le message, le message sera supprimé de la file d'attente.
Le sujet est que tous les abonnés à un sujet reçoivent le même message lorsque le message est publié.
la source