Attualmente sto progettando un'applicazione che alla fine voglio spostare su Windows Azure. A breve termine, tuttavia, verrà eseguito su un server che ospiterò io stesso.Buona strategia per l'accodamento dei messaggi?
L'applicazione include un numero di applicazioni Web separate: alcuni di questi sono essenzialmente servizi WCF che ricevono dati e alcuni sono siti per consentire agli utenti di gestire i dati. Inoltre, sarà necessario un servizio di lavoro in esecuzione in background che elaborerà i dati in vari modi.
Sono molto entusiasta di utilizzare un'architettura disaccoppiata per questo. Idealmente, voglio che i componenti (ad esempio le app Web e il servizio di lavoro) sappiano il meno possibile l'uno sull'altro. Sembra che l'uso di una coda di messaggi sia la soluzione migliore qui: le app Web possono accodare messaggi con le unità di lavoro nella coda e il servizio di lavoro può individuarli e elaborarli secondo necessità.
Tuttavia, desidero elaborare un buon set di tecnologie per fare ciò, tenendo presente che alla fine mi sposterò ad Azure e voglio ridurre al minimo la quantità di rilavorazione che dovrò fare quando migrare al cloud. Azure ha un componente Queue in cui è ideale per le mie esigenze. Quello che mi piacerebbe fare è creare qualcosa da me stesso che lo riproduca il più fedelmente possibile.
Sembra che ci sono diverse opzioni (sto usando .NET su Windows, con una fine del 2005 di nuovo SQL Server) - quelli che ho trovato finora sono:
- MSMQ
- SQL Server service Broker
- rotazione mia utilizzando una tabella di database e alcune stored procedure
mi chiedevo se qualcuno ha qualche suggerimento per questo - o se qualcuno ha fatto qualcosa di simile e ha consigli sulle cose da fare/evitare. Mi rendo conto che ogni situazione è diversa, ma in questo caso penso che i miei requisiti di accodamento siano piuttosto generici, quindi mi piacerebbe sentire le opinioni di qualcun altro sul modo migliore per farlo.
Grazie in anticipo,
John
Grazie! Questo è molto utile. Sembra che MSMQ potrebbe essere un'opzione migliore per i nostri scopi: immagino che un grande passo successivo consisterà nel confrontare MSMQ con Accodamento di Azure. Ad esempio, so che Azure non garantisce che i messaggi verranno consegnati in ordine (o solo una volta), quindi dovrò verificarlo con MSMQ per vedere qual è il comportamento corrispondente. Ma grazie ancora per questo - è un confronto molto informativo. – John