Messagerie Confusion: Pub/Sub vs Multidiffusion vs Fan
J'ai procédé à l'évaluation de technologies de messagerie pour mon entreprise mais je suis devenu très confus par les différences conceptuelles entre quelques termes:
Pub/Sub vs Multidiffusion vs Fan
Je suis en train de travailler avec les définitions suivantes:
- Pub/Sub a des éditeurs de la livraison d'une copie de chaque message
chaque abonné qui signifie que la possibilité de garantir la livraison existe - Fan a une seule file d'attente poussant à tout à l'écoute
clients. - Multidiffusion seulement les spams des données et si quelqu'un est à l'écoute
alors tout va bien, si non, il n'a pas d'importance. Pas de possibilité de garantir à un client est certainement un message.
Sont ces définitions de droit? Ou est la Pub/Sub le modèle et la multidiffusion, directe, distribution etc. façons de réaliser le motif?
Je suis en train de travailler au dehors-de-le-boîte de RabbitMQ définitions dans notre architecture, mais je vais juste tourner en rond à l'instant d'essayer d'écrire les spécifications pour notre application.
Svp quelqu'un pourrait-il me conseiller si je suis de droite?
InformationsquelleAutor ghostJago | 2011-11-24
Vous devez vous connecter pour publier un commentaire.
Je suis confus par votre choix de trois termes à comparer. Au sein de RabbitMQ, Sortance et Directs sont les types d'échange. Pub-Sub est un générique de modèle de messagerie, mais pas un type d'échange. Et vous n'avez même pas mentionner le 3ème et le plus important type d'Échange, à savoir le Sujet. En fait, vous pouvez mettre en place Avec un comportement sur un Sujet d'échange juste en déclarant plusieurs files d'attente avec la même clé de liaison. Et vous pouvez définir Directement le comportement sur un Sujet d'échange par la déclaration d'une File d'attente avec
*
que le caractère générique de la liaison de clé.Pub-Sub est généralement compris comme un modèle dans lequel une application publie les messages qui sont consommées par plusieurs abonnés.
Avec RabbitMQ/AMQP il est important de se rappeler que les messages sont toujours publiés à l'échange. Les échanges route vers les files d'attente. Et les files d'attente de transmettre des messages aux abonnés. Le comportement de l'échange est important. Dans le Topic des échanges, la clé de routage à partir de l'éditeur est associé à la clé de liaison de l'abonné afin de prendre la décision de routage. La liaison les clés peuvent avoir des caractères génériques qui influences d'autres la décision de routage. Un routage plus complexe peut être réalisé en se basant sur le contenu des en-têtes de message à l'aide d'un des en-têtes de type d'échange
RabbitMQ ne fait pas garantir la livraison des messages, mais vous pouvez obtenir la garantie de livraison en choisissant les bonnes options(mode de livraison = 2 pour les messages), et de déclarer les échanges et les files d'attente à l'avance de l'exécution de votre application, de sorte que les messages ne sont pas jetés.
Vos définitions sont à peu près correctes. Notez que la garantie n'est pas limitée à la pub/sub seulement, et il peut être fait avec sortance trop. Et oui, pub/sub est un très description de base qui peut être réalisé avec des méthodes spécifiques comme la distribution, direct et ainsi de suite.
Il y a plus de modèles de messagerie qui pourrait vous être utile. Jetez un oeil à Enterprise Integration Patterns pour plus de détails.
Électronique, l'échange de point de vue, le terme de “Multicast” signifie “le message est placé sur le fil une fois” et toutes les applications clientes qui sont à l'écoute peut lire le message sur le “fil”. Toute solution qui fait de N copies du message pour les N clients n'est pas de multidiffusion. En plus d'examiner le code source on peut aussi utiliser un “sniffer” pour déterminer le nombre de copies du message est envoyé sur le fil du système de messagerie. Et oui, les messages de multidiffusion sont une forme le protocole UDP message. Voir: http://en.wikipedia.org/wiki/Multicast pour une description générale. Il y a dix ans, nous avons utilisé le système de messagerie de TIBCO que les prises en charge de la multidiffusion. Voir: https://docs.tibco.com/pub/ems_openvms_c_client/8.0.0-june-2013/docs/html/tib_ems_users_guide/wwhelp/wwhimpl/common/html/wwhelp.htm#context=tib_ems_users_guide&file=EMS.5.091.htm