2009-01-27 17 views
6

Wiem, że to pytanie zostało zadane nieco wcześniej. Ale rozglądając się dookoła wciąż nie mogę się zdecydować, którą drogę powinienem zejść. Oto mój scenariusz, mam nadzieję, że możesz pomóc:MSMQ kontra tymczasowy zrzut tabeli

Będziemy mieli serię usług internetowych, które będą trafiać według harmonogramu przez setki aplikacji mobilnych. Usługi te będą zawierały dane na urządzeniu z nowymi informacjami zarówno przechodzącymi do urządzeń, jak iz nich wracającymi. Dane zwrócone z urządzeń będą musiały zaktualizować pojedynczą centralną bazę danych serwera SQL, która również zasila kilka aplikacji komputerowych i stronę internetową.

Aby zmniejszyć ilość czasu potrzebnego na żądanie/odpowiedź na te usługi, zdecydowaliśmy się przetwarzać dane przychodzące z urządzeń po fakcie, przyklejając je do instancji MSMQ lub przechowując zserializowane obiekty w trybie tymczasowym. magazyn danych i usługi systemu Windows przetwarzają je później.

Więc nie mój wybór, ale oprócz tego oto kilka rzeczy, które mogą pomóc Ci faceci mi doradzają:

  • Dane zwrócone z urządzeń nie będą zwracane w mniejszych pakietach komunikatów, które muszą być zamówiona strona serwera.
  • Nic nie wiem o MSMQ, ale wcześniej napisałem usługi Windows. Chociaż nie mam problemu z pobieraniem MSMQ, jeśli jest to wymagane.
  • Chcę zachować odpowiedź z urządzeń w przypadku, gdy przetwarzanie zakończy się niepowodzeniem z jakiegoś powodu spowodowanego przez dane. W ten sposób mogę przesłuchać dane i sprawdzić, czy istnieje problem, tj. Urządzenie pozwala użytkownikowi dodawać komentarze, które wydłużają długość powiązanego pola w bazie danych po stronie serwera.

Czy sądzisz, że przy tych informacjach warto studiować MSMQ lub czy powinienem trzymać się prostszego rozwiązania?

Chris.

Odpowiedz

8

MSMQ nie jest złym wyborem i zdecydowanie nie jest trudny do nauczenia, ale należy pamiętać, że istnieją pewne ograniczenia, o których należy pamiętać.

Wady:

  • każdej kolejki może być tylko 2 GB.
  • Każda wiadomość 4MB (mimo limitu 4 MB można naprawić za pomocą MSMQ z WCF).
  • Tylko dla systemu Windows, więc możesz używać go z biblioteką .NET, C/C++ lub COM dla środowisk z obsługą COM.

Plusy:

  • Obsługuje równoważenia obciążenia sieciowego systemu Windows.
  • Obsługuje usługę Microsoft Cluster Service.
  • Zintegrowany z usługą Active Directory.
  • Statki z systemem Windows.
  • Obsługuje transakcje.
  • Wiadomości MSMQ mogą być śledzone przez komunikaty kontroli w dzienniku zdarzeń systemu Windows.
  • Wiadomości mogą być automatycznie uwierzytelniane (podpisywane) lub szyfrowane podczas wysyłania, a także weryfikowane i odszyfrowywane po odebraniu.

Innym rozwiązaniem, które warto rozważyć, jest zapisanie danych w tabeli pomostowej. To może być dobry pomysł, ponieważ chcesz mieć log z powrotem do wiadomości.

Trudno udzielać porad, gdy nie znam reszty architektury systemu, ale mam nadzieję, że ta odpowiedź trochę pomoże.

Przydatne linki

Programming MSMQ in .NET - Part 1
Using MSMQ with WCF

+0

Id pomogło Dziękuje – Owen