La multidiffusion, la Messagerie, ActiveMQ vs MSMQ?
Je suis en train de travailler sur une messagerie/système de notification pour nos produits. Exigences de base sont:
- Feu et oublier
- Persistante ensemble de messages, éventuellement la mise à jour, pour y rester jusqu'à ce que l'expéditeur dit de les enlever
Les bibliothèques seront écrit en C#. Spring.NET vient de publier une étape de build avec beaucoup de agréable de messagerie de l'abstraction, ce qui est excellent - j'ai l'intention de l'utiliser largement. Ma question de base se résume à la question de message courtiers. Mon architecture ressemble à quelque chose comme app -> message broker file -> serveur d'application qui écoute, distribue tous les messages à l'endroit où ils doivent aller, et gère le cycle de vie de ceux à long terme des messages -> message broker de la file d'attente ou le sujet -> écoute apps.
Enfin, à la question: quel message broker dois-je utiliser? Je suis biaisé en faveur de ActiveMQ - Nous l'avons utilisé pour notre dernier projet et l'a adoré. Je ne peux pas vraiment penser à une grève contre elle, sauf que c'est du Java, et aura besoin de java pour être installé sur un serveur quelque part, et qui pourrait être un dur à vendre à certaines des personnes qui seront en utilisant ce service. L'autre option que j'ai été à la recherche à est MSMQ. Je suis de parti-pris contre elle, pour une raison inconnue, et il ne semble pas avoir grand le support de multidiffusion.
Quelqu'un a utilisé MSMQ pour quelque chose comme ça? Les avantages ou les inconvénients, des trucs qui pourraient balancer le vote d'une façon ou de l'autre?
Une dernière chose, nous sommes à l'aide .NET 2.0.
Vous devez vous connecter pour publier un commentaire.
Je suis un peu biaisé comme je travaille sur ActiveMQ mais à peu près tous les avantages énumérés pour MSMQ-dessus s'appliquent également ActiveMQ vraiment.
Encore plus d'avantages de ActiveMQ inclure
Le principal inconvénient de vous mentionner, c'est que le courtier ActiveMQ est écrit en Java, mais vous pouvez l'exécuter sur IKVM comme une .net de l'assemblée si vous voulez vraiment - ou l'exécuter en tant que service windows, ou compiler une DLL/EXE via GCJ. MSMQ peut ou ne peut pas être écrit .NET - mais il n'a pas vraiment beaucoup d'importance comment sa mise en œuvre à droite?
Indépendamment de savoir si vous choisissez MSMQ ou ActiveMQ, que je recommanderais à tout le moins examiner à l'aide de la SGEN API qui comme vous le dites est intégré grands dans les Spring.NET. Il y a un MSMQ mise en œuvre de cette API ainsi que des implémentations pour TibCo, ActiveMQ, STOMP, qui aura le soutien de tout autre fournisseur JMS via StompConnect.
En choisissant NMS votre API vous permettra d'éviter de faire adopter à toute technologie propriétaire - et vous pouvez facilement changer de fournisseurs de services de messagerie à tout moment dans le temps; plutôt que le verrouillage de votre code dans une API propriétaire
Pros pour MSMQ.
Contre:
Voici un bon blog pour MSMQ
Prendre un coup d'oeil à zeromq. C'est l'un des plus rapides les files d'attente autour.
Je vous suggère de regarder TIBCO Enterprise Service de Messagerie - EMS, qui est une haute performance de messagerie produit qui prend en charge la multidiffusion, le routage, supporte la spécification JMS et fournit à l'échelle de l'entreprise y compris les caractéristiques de vos besoins tel que l'incendie oublier de message et de persistance à l'aide du fichier/base de données à l'aide de l'état partagé.
Comme une référence, FEDEX s'exécute sur TIBCO EMS
comme son infrastructure de messagerie.
http://www.tibco.com/software/messaging/enterprise_messaging_service/default.jsp
Il y a beaucoup d'autres références si je vous serais vraiment surpris.
Il y a plusieurs options dans cette arène...
Gratuit: MantaRay un peer to peer entièrement JMS système compatible. La partie intéressante de la Mantaray, c'est que vous avez seulement besoin de définir l'endroit où le message passe et MantaRay routes de toute façon qui va obtenir votre message à detination - de sorte qu'il est plus résistant aux pannes de nœuds individuels dans votre messagerie tissu.
Payé: À mon travail j'administre un IBM WebSphere MQ système de messagerie avec plusieurs centaines de nœuds et l'ai trouvé très bon. Nous avons aussi récemment acheté Tibco EMS, et il semble qu'il sera très agréable à utiliser.
Paul/