Gute Strategie für Message Queuing?
Derzeit entwerfe ich eine Anwendung, die ich letztendlich auf Windows Azure umstellen möchte. Kurzfristig läuft es jedoch auf einem Server, den ich selbst hosten werde.
Bei der Anwendung handelt es sich um eine Reihe separater Webanwendungen - einige davon sind im Wesentlichen WCF-Dienste, die Daten empfangen, und einige sind Websites, auf denen Benutzer Daten verwalten können. Außerdem muss ein Worker-Service im Hintergrund ausgeführt werden, der Daten auf verschiedene Arten verarbeitet.
Ich bin sehr daran interessiert, dafür eine entkoppelte Architektur zu verwenden. Idealerweise möchte ich, dass die Komponenten (d. H. Web-Apps und Worker-Service) so wenig wie möglich voneinander wissen. Hier scheint die Verwendung einer Nachrichtenwarteschlange die beste Lösung zu sein - die Web-Apps können Nachrichten mit Arbeitseinheiten in die Warteschlange einreihen, und der Worker-Service kann sie auswählen und nach Bedarf verarbeiten.
Ich möchte jedoch eine Reihe guter Technologien dafür ausarbeiten, wobei zu berücksichtigen ist, dass ich letztendlich zu Azure wechseln und den Nachbearbeitungsaufwand bei der Migration in die Cloud minimieren möchte . In Azure ist eine Warteschlangenkomponente integriert, die meinen Anforderungen entspricht. Was ich tun möchte, ist selbst etwas zu erschaffen, das dies so genau wie möglich nachahmt.
Anscheinend gibt es mehrere Optionen (ich verwende .NET unter Windows mit einem SQL Server 2005-Back-End) - die, die ich bisher gefunden habe, sind:
MSMQSQL Server-DienstbrokerIch benutze eine Datenbanktabelle und einige gespeicherte ProzesseIch habe mich gefragt, ob jemand irgendwelche Vorschläge dazu hat - oder ob jemand etwas Ähnliches getan hat und Ratschläge hat, was zu tun / zu vermeiden ist. Mir ist klar, dass jede Situation anders ist, aber in diesem Fall denke ich, dass meine Warteschlangenanforderungen ziemlich allgemein sind. Daher würde ich gerne die Gedanken anderer darüber hören, wie dies am besten funktioniert.
Danke im Voraus,
John