Question

Y at-il un produit (source idéalement ouvert, mais pas nécessaire), qui permettrait un déploiement de dépendance zéro? toutes les bibliothèques de bus de service ou file d'attente que je suis en mesure de trouver a une dépendance à l'une des applications de la file d'attente (comme MSMQ), ou une base de données. Je voudrais une solution très léger que je peux ajouter une référence à ma demande, construire et déployer avec aussi peu que possible la configuration.

Dans un monde idéal, la file d'attente / bus de service serait exécuté sur IIS, et permettre aux clients Web et riches pour lui parler.

Un tel outil serait idéal pour le prototypage rapide de grands systèmes distribués sur une machine de développement local.

Était-ce utile?

La solution

Rhino Queues de Ayende est exactement ce que vous cherchez, c'est le billet de blog introduisant:

http://ayende.com/Blog/archive/ 2008/08/01 / Rhino-Queues.aspx

Je pense que toutes les limitations mentionnées dans cet article ont été corrigés depuis.

Du blog, ce que les files d'attente rhinocéros est:

  • XCopyable, zéro administration, intégré, Async service de mise en attente
  • robuste face à la mise en réseau
  • soutien de pannes
  • rapide
  • Travaux sur HTTP

Autres conseils

Dans une veine similaire à la suggestion de ShuggyCoUk, vous pourriez monter une file d'attente (ou les files d'attente) en utilisant les fenêtres base de données intégrée ESENT (déjà installés avec vient de Windows). Il y a une bibliothèque d'accès de code managé (open source): http://www.codeplex.com/ManagedEsent . Si vous en tenir à l'écriture / lecture CLOB ou BLOB, il devrait fonctionner très bien. Si vous voulez être vraiment intelligent, vous pouvez utiliser NServiceBus et écriture (contribution?) Stockage de souscription aromatisée ESENT et transports . Il y a quelques incursions dans l'utilisation ESENT sur le blog Ayende et (vous devrez fouiller son dépôt SVN pour la morceaux juteux).

Si vous êtes heureux d'être:

  1. Windows spécifique
  2. Limité au domaine local
  3. Sérieusement limité dans la taille des messages pris en charge
  4. Enveloppez les appels win32 sous-jacents P / Invoke
  5. Traiter le vote vous
  6. Traiter les hacks nécessaires pour permettre la communication dans les deux sens
  7. Traiter la configuration partagée nécessaire pour garder les noms de synchronisation

Ensuite, un emballage rapide autour des fenêtres API MailSlot pourrait être suffisante.

simples est une base raisonnable commencer.

Cet article a quelques informations supplémentaires mais suppose le cas d'utilisation est par un contrôle (au lieu d'un composant tel qu'il devrait être) ainsi que certaines mauvaise intégration WinForms devrait donc être pris en considération pour la lecture incidente plutôt que d'une base pour toute bibliothèque.

Cet article est C ++, mais est d'un niveau plus élevé (et commentateur a étendu pour soutenir la mise en lots de messages plus importants en plusieurs plus petits).

Vous obtenez 424 octets (donc avec .Net 212 caractères), vous pouvez déposer en ASCII pour doubler votre longueur de message utile si vous parlez du texte.

Notez que, malgré sa simplicité, les limites et le manque de fonctionnalités qu'il offre la livraison de multidiffusion, quelque chose souvent complexe à la couche sur un point à point vous protocole.

Ayende post offre et comparaison intéressante des trois bus de service. Nous utilisons NServiceBus et je pense que si on ne sait pas que Udi Dahan répondrait à la façon dont vous souhaitez brancher la file d'attente non-dépendants.

travail en utilisant MSMQ heureusement, mais il y a d'autres options et en théorie, il devrait être ouvert à pratiquement rien, étant donné que vous risquez de perdre une certaine fiabilité et la durabilité en fonction de votre choix.

Pourquoi ne pas service de messagerie d'Amazon Simple Queue Service de?

Nous avons déménagé nos projets de MSMQ ActiveMQ . son vraiment mieux :)
ActiveMQ est open source file d'attente, basée sur le serveur web Apache.
Nous l'avons utilisé dans la production de flux de données à haute fréquence, où MSMQ ont beaucoup de problème (nous travaillons avec MSMQ un an)
La mise en œuvre de csharp est NMS

Je travaille actuellement sur un bus de service basé sur WCF open source. Vous pouvez le trouver ici: http://rockbus.codeplex.com/ . Il prend en charge dynamique (@ exécution) abonnements, dépôt de ouscription (base de données), transports connectables, XPath routage basé sur le contenu, de livraison des transactions sur les protocoles de WCF, roundrobin livraison, évaluation de souscription connectable, et plus encore. Jetez un coup d'oeil!

Avez-vous pensé à utiliser un service comme IronMQ par http://Iron.io ?

Vous auriez pas des dépendances, pourrait rapidement des applications prototypes sans mettre en place une infrastructure de file d'attente, et il est très disponible et rapide.

Il n'y a pas une version locale installable, mais il est basé sur le protocole à venir OpenStack donc il y aura.

BTW, je travaille pour le fer.

https://github.com/mcintyre321/PieQ - c'est ma tentative d'écrire un threadsafe, persistant, zéro-config, file d'attente de travail intégré. Il a probablement besoin d'un peu d'amour, mais je pense que ce pourrait être le genre d'outil que vous recherchez.

J'ai développé une bibliothèque JMS InMemory qui peut être utilisé pour tester des applications dans JMS sans vraiment se connecter à JMS fournisseurs / serveur (Pensez hsqldb). Vous ne devez pas traiter avec une connexion ou d'un protocole ou quoi que ce soit, tout ce que vous devez faire est d'envoyer et recevoir des messages.

https://github.com/Dhana-Krishnasamy/InMemoryJMS

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top