Dobra strategia dla kolejkowania wiadomości?

Obecnie projektuję aplikację, którą ostatecznie chcę przenieść na Windows Azure. Jednak na krótką metę będzie działać na serwerze, na którym się znajdę.

Aplikacja obejmuje wiele oddzielnych aplikacji internetowych - niektóre z nich są zasadniczo usługami WCF, które odbierają dane, a niektóre są witrynami dla użytkowników do zarządzania danymi. Ponadto musi istnieć usługa robocza działająca w tle, która będzie przetwarzać dane na różne sposoby.

Bardzo zależy mi na zastosowaniu architektury oddzielonej od tego. Najlepiej, gdy chcę, aby składniki (tj. Aplikacje internetowe i usługa dla pracowników) wiedziały o sobie jak najmniej. Wydaje się, że najlepszym rozwiązaniem będzie korzystanie z kolejki komunikatów - aplikacje internetowe mogą kolejkować wiadomości z jednostkami pracy do kolejki, a usługa pracownika może je wybrać i przetworzyć w razie potrzeby.

Chcę jednak opracować dobry zestaw technologii do tego celu, pamiętając, że ostatecznie przejdę na Azure i chcę zminimalizować ilość ponownych prac, które będę musiał wykonać, gdy przeprowadzę się do chmury . Azure ma wbudowany komponent kolejki, który idealnie pasuje do moich potrzeb. To, co chciałbym zrobić, to stworzyć coś, co naśladuje to tak dokładnie, jak to możliwe.

Wygląda na to, że istnieje kilka opcji (używam .NET w systemie Windows, z zapleczem SQL Server 2005) - do tej pory znalazłem:

MSMQBroker usług SQL ServerRolling własne przy użyciu tabeli bazy danych i niektórych zapisanych proc

Zastanawiałem się, czy ktoś ma jakieś sugestie na ten temat - lub czy ktoś zrobił coś podobnego i ma rady na temat rzeczy do zrobienia / do uniknięcia. Zdaję sobie sprawę, że każda sytuacja jest inna, ale w tym przypadku uważam, że moje wymagania dotyczące kolejkowania są dość ogólne, więc chciałbym usłyszeć czyjeś myśli na temat najlepszego sposobu na to.

Z góry dziękuję,

Jan

questionAnswers(3)

yourAnswerToTheQuestion