2010-03-31 4 views
6

Nach einer Tonne lesen in Büchern und im Internet, habe ich Hinweise auf Informationen, die WCF und MSMQ verwendet werden können, um hohen Durchsatz zu erreichen. Die Informationen, die ich gesehen habe, erwähnen die Verwendung mehrerer WCF-Dienste in einer Farm, die aus einer einzelnen MSMQ-Warteschlange liest. Das Problem ist, dass ich hier und da Absätze gefunden habe, die erwähnen, dass ein hoher Durchsatz erreicht werden kann, aber ich kann kein Dokument finden, wie man es implementiert. Das folgende ist ein Auszug aus einem MSDN-Artikel.Load Balance WCF und teilen eine Remote-MSMQ für hohen Durchsatz

Der folgende Absatz ist von Best Practices für Queued Kommunikation http://msdn.microsoft.com/en-us/library/ms731093.aspx Um einen höheren Durchsatz und Verfügbarkeit zu erreichen, eine Farm von WCF-Dienste verwenden, die aus der Warteschlange zu lesen. Dies erfordert, dass alle diese Dienste denselben Vertrag für denselben Endpunkt bereitstellen. Der Farm-Ansatz eignet sich am besten für Anwendungen mit einer hohen Produktionsrate von Nachrichten, da mehrere Dienste von derselben Warteschlange gelesen werden können.

Dies ist, was ich versuche zu lösen. Ich habe eine Intranet-Anwendung, wo ein Client eine Anfrage an einen WCF-Dienst sendet. Aber ich möchte die Möglichkeit haben, die WCF-Dienste auf mehreren Servern in einer Farm zu verteilen. Ich möchte auch, dass diese WCF-Dienste in der Farm Transaktionslesevorgänge von einem Remote-MSMQ ausführen, wenn ein Element in der Warteschlange verfügbar ist. Wenn dies möglich ist, habe ich das Problem, dass ich den Aktivierungsprozess von WCF zum Abrufen von Nachrichten aus einer fernen Warteschlange nicht verstehe.

Wenn das möglich ist, kennt jemand irgendwelche Artikel oder Webcasts, die es im Detail erklären würden? Ich lief mehrere Instanzen eines vorhandenen WCF-Anwendung gegen eine msmq

BarDev

+0

irgendein Beispielcode, bitte ?? – Kiquenet

Antwort

4

ich über alle Artikel, sondern als ein Proof of Concept weiß es nicht.

Was passiert ist, dass, wenn 10 Nachrichten bereits in der Warteschlange vorhanden waren, sie nur von einer der wcf-Instanz behandelt wurden.

Allerdings wurden alle nachfolgenden Nachrichten, die in die Warteschlange gestellt wurden, fast gleichmäßig auf alle Instanzen verteilt, was eine ziemlich saubere Lösung für den Lastenausgleich darstellt.

Was Sie tun müssen, ist einen einzigen Wcf-Dienst gegen eine msmq laufen zu erstellen, stellen Sie sicher, dass seine Arbeit richtig, und dann von dort aus geht immer mehr Instanzen des WCF-Dienstes ausgeführt wird, um zu sehen, was geschieht

Verwandte Themen