2013-09-30 32 views
33

Chciałbym dokonać świadomego wyboru w kierunku prostej architektury publikowania/subskrypcji.Co dodaje usługa Service Bus do MSMQ?

Zastanawiam się: co dodaje magistrala usług, że MSMQ nie może wykonać?
Jakie są wady Bus Service ?

Thx za oświecenie mnie!

+1

+1, Interesujące pytanie. Nie wiem zbyt wiele o Windows Service Bus, chciałbym zobaczyć szczegółowe porównanie z MSMQ. Znalazłem to (zobacz komentarze poniżej artykułu): http://shanthuk.com/2012/11/05/windows-service-bus-vs-msmq/ Za to, co jest warte, z powodzeniem zastosowałem MSMQ w mojej architekturze wiele razy i zdecydowanie polecam: lekki, solidny, transakcyjny. Zobacz http://stackoverflow.com/a/9077925/870604 – ken2k

+0

Po prostu dodać (jak to często pomijane), jeśli w ogóle używasz serwera SQL, a następnie rozważyć Service Broker, który jest systemem przesyłania wiadomości wewnątrz infrastruktury bazy danych. – Rikalous

+0

Polecam używać NServiceBus http://nservicebus.com/CodeFirstGettingStarted.aspx – wudzik

Odpowiedz

19

Główna różnica funkcjonalna polega na tym, że Magistrala usług zapewnia od razu wsparcie dla semantyki wymiany wiadomości, takie jak routing tematyczny za pośrednictwem subskrypcji publikacyjnej.

Z drugiej strony MSMQ to lekki system kolejkowania do przechowywania i przekazywania, który obsługuje przesyłanie wiadomości w jednym kierunku.

Service Bus:

  1. zależy SQL Server, a
  2. jest broker. This may be considered a drawback.

Jeśli szukasz na pub-sub ram wówczas popularny w tej chwili (za darmo w trybie pojedynczego gwintowane) jest NServiceBus, który siedzi na szczycie MSMQ, choć ma swap możliwość transportu.

+1

Dziękuję za odpowiedź, która jest przydatna i udokumentowana za pomocą linków. +1 za odpowiedź, a premia za reputację jest dla ciebie :) – ken2k

+1

@ ken2k bardzo łaskawy od ciebie ... szczerze mówiąc, nie spodziewałem się nagrody i nie jestem zaskoczony żadnymi lepszymi odpowiedziami niż moje zostały opublikowane. Ten temat zasługuje na lepszą dyskusję, jak sądzę. –

+0

Dzięki za link do strony z linkami do bus-and-broker-pubsub - było wiele informacji. – eddiewould

8

Plusy

  • Service Bus pozwala na publikowanie przez TCP i HTTP, który jest cool, i daje większą oddzielenie.
  • Magistrala usług jest bazą danych SQL, dzięki czemu odzyskiwanie po awarii jest Droższe i dużo tańsze w implementacji.

Wady

  • Service Bus jest scentralizowany i MSMQ jest stowarzyszony, więc potencjalnie bardziej skalowalne. Chociaż można skalować z większą liczbą węzłów w WSB.
  • Przed opublikowaniem potrzebne jest połączenie na żywo z centralną magistralą. Tak więc federacja MSMQ (na każdym komputerze) czyni ją bardziej dostępną dla klientów.

Jednak użytkownicy używają MSMQ jako lokalnego sklepu z magistralą usług, więc publikuj lokalnie, a następnie przekaż go do magistrali, gdy połączenie jest dostępne.

Mamy obecnie dobre doświadczenia z Service Bus zamiast MSMQ.

+0

Czy możesz opisać ostatni scenariusz nieco więcej? używając MSMQ jako lokalnego sklepu z SB? Czy to oznacza, że ​​zawsze przekazujesz komunikat klienta do kolejek MSMQ, a następnie w jaki sposób SB to wykorzystuje? –

+1

Twój serwer internetowy ma zainstalowane msmq, podobnie jak serwer Sb. Twoja strona klienta implementuje zasadę ponowienia próby Sb, gdy początkowo próbuje bezpośrednio publikować w Sb. Jeśli te błędy nie powiodą się w lokalnym msmq i wykorzystaj wbudowany mechanizm Store and forward do dostarczenia do msmq na serwerze Sb (kiedy stanie się dostępny). Miej usługę windows na serwerze sb, który ładuje wiadomości msmq do kolejek sb. Alternatywnie dodaj więcej węzłów sb do swojej farmy, aby uzyskać większą dostępność. – jonho

Powiązane problemy