Domanda

C'è un prodotto (l'ideale è open source, ma non è necessario), che consentirebbe di zero dipendenza di distribuzione?ogni servizio di autobus o in coda biblioteca sono stato in grado di trovare è una dipendenza su una di coda apps (come msmq), o un database.Mi piacerebbe molto leggero, soluzione che posso solo aggiungere un riferimento alla mia domanda, costruire e distribuire con un minimo di configurazione possibile.

In un mondo ideale, la coda/servizio di bus girano su IIS, e consentire web e client per comunicare con esso.

Tale strumento sarebbe l'ideale per la prototipazione rapida di sistemi distribuiti in un locale macchina di sviluppo.

È stato utile?

Soluzione

Rhino Code da Ayende è esattamente quello che stai cercando, questo è il post sul blog di introdurlo:

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

Credo che tutte le limitazioni menzionati in questo post sono stati corretti da allora.

Dal post del blog, che cosa le code Rhino è:

  • XCopyable, Zero Administration, embedded, servizio di accodamento asincrono
  • robusto di fronte alla rete
  • interruzioni System.Transactions supporto
  • veloce
  • Opere su HTTP

Altri suggerimenti

In modo simile al suggerimento di ShuggyCoUk, si potrebbe mettere su una coda (o code) utilizzando il Windows database integrato ESENT (viene già installato con Windows). C'è una libreria di accesso di codice gestito (open source): http://www.codeplex.com/ManagedEsent . Se si bastone con la scrittura / lettura CLOB o BLOB, dovrebbe funzionare bene. Se si vuole essere molto intelligente, è possibile utilizzare NServiceBus e scrittura (contribuire?) ESENT al gusto di stoccaggio di sottoscrizione e trasporti . Ci sono alcune incursioni nel usando ESENT sul blog di Ayende così (dovrete colpire intorno al suo repository SVN per la bit succosa).

Se sei felice di essere:

  1. Specifiche di Windows
  2. Limitata al dominio locale
  3. Seriamente limitato nella dimensione del messaggio supportati
  4. Avvolgere il sottostante win32 chiamate in P/Invoke
  5. Trattare con il polling te
  6. Fare con l'hack necessari per consentire e indietro la comunicazione
  7. Tassi comune config necessario per mantenere i nomi in sync

Poi un rapido wrapper di windows MailSlot API potrebbe essere sufficiente.

Questo semplice esempio è una base ragionevole per iniziare.

Questo articolo ha alcune ulteriori informazioni, ma assume il caso d'uso è tramite un controllo, piuttosto che un Componente come dovrebbe essere) così come alcuni poveri WinForms integrazione, così dovrebbe essere considerato per danni incidentali di lettura, piuttosto che una base per ogni biblioteca.

Questo articolo è il C++, ma è di una categoria superiore (e un commentatore ha esteso per supportare il dosaggio di messaggi di grandi dimensioni in più piccoli).

Si ottiene 424 byte (quindi con .Netto di 212 caratteri) che si potrebbe desiderare di cadere in ASCII per raddoppiare l'utile della lunghezza del messaggio, se stai parlando di testo.

Nota che, nonostante la sua semplicità, i limiti e la mancanza di caratteristiche che forniscono una consegna multicast, qualcosa, spesso complesse, a livello su un punto a punto del protocollo di te stesso.

Questo Ayende posta fornisce e interessante il confronto di tre autobus di servizio. Usiamo NServiceBus e pensiamo se non è chiaro che Udi Dahan avrebbe risposto a come ci si collega coda non dipendente.

lavoro utilizzando MSMQ felicemente, ma ci sono altre opzioni e, in teoria, dovrebbe essere aperto a praticamente qualsiasi cosa, dato che è possibile perdere un po 'di affidabilità e durata a seconda della scelta.

servizio di messaggi di Amazon Simple Queue Service?

Ci siamo trasferiti i nostri progetti da MSMQ ActiveMQ . la sua davvero meglio :)
ActiveMQ è open source della coda, sulla base di server web Apache.
L'abbiamo usato nella produzione di alta frequenza del flusso di lavoro dei dati, in cui MSMQ hanno un sacco di problemi (lavoriamo con MSMQ un anno)
L'implementazione è csharp NMS

Al momento sto lavorando su un bus servizio basato su open source WCF. Lo si può trovare qui: http://rockbus.codeplex.com/ . Supporta dinamica (@ run-time), abbonamenti repository abbonamento (database), trasporti pluggable, XPath di routing basato sul contenuto basato, consegna transazionale su protocolli WCF, RoundRobin consegna, di valutazione di sottoscrizione pluggable, e altro ancora. Date un'occhiata!

Avete pensato di usare un servizio come IronMQ da http://Iron.io ?

Non avrebbe alcun dipendenze, potrebbe applicazioni rapidamente prototipo senza la creazione di qualsiasi infrastruttura di coda, ed è altamente disponibile e veloce.

Non è al momento una versione installabile localmente, ma è basato sul prossimo protocollo OpenStack quindi non ci sarà.

A proposito io lavoro per Ferro.

https://github.com/mcintyre321/PieQ - questo è il mio tentativo di scrivere un threadsafe, persistente, a zero-config, coda di lavoro incorporato. Probabilmente ha bisogno di un po 'd'amore, ma penso che potrebbe essere il tipo di strumento che stai cercando.

Ho sviluppato una libreria InMemory JMS che può essere utilizzato per applicazioni di test JMS senza realmente connessione a JMS provider / server (Pensate HSQLDB). Non avete a che fare con la connessione o il protocollo o niente, tutto quello che dovete fare è quello di inviare e ricevere messaggi.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top