WCF - NetMsmqBinding und NetTcpBinding

8

Ich habe diesen Artikel durchgesehen Ссылка um Bindungsoptionen zu wählen.

wo ich einen ungewöhnlichen Zweifel hatte, was mit

gemeint ist
  

Offline oder nicht verbundene Interaktion, wählen Sie die NetMsmqBinding

Bedeutet das auch, wenn der Dienst noch keinen Client ausführt, der den Dienst verwendet?

Können Sie ein Beispiel aus der realen Welt teilen?

    
Tharun 10.09.2012, 10:21
quelle

1 Antwort

9

Die 2 Bindungen sind radikal verschieden.

  • NetTcpBinding kann als ein proprietäres MS-Format (normalerweise binär) angesehen werden, das dem Konzept von RPC ähnlich ist (z. B. kann es verwendet werden, um .NET Remoting zu ersetzen). Es ist synchron, d. H. Sowohl der Client als auch der Server müssen gleichzeitig online sein, und der Client erhält (fast) sofort eine Antwort.

  • MSMQ ist eine Message Oriented Middleware-Lösung von Microsoft, die sich um asynchrone Warteschlangen dreht - z. Wenn der Zielserver offline ist, wenn der Client eine Nachricht sendet, wird die Nachricht auf dem Client in die Warteschlange gestellt, bis der Server wieder online ist. Jede Warteschlange ist nur eine Möglichkeit, obwohl eine bidirektionale Kommunikation über eine zweite Warteschlange von Server zu Client erreicht werden kann. Das Senden von WCF-MSMQ-Nachrichten erfordert, dass der Dienst MSMQ auf dem Client installiert wird. Nachrichten in der Warteschlange können eine Zustellungs-Zeitüberschreitung aufweisen. Andernfalls wird sie in einer entsprechenden Warteschlange für nicht zustellbare Nachrichten platziert.

Beispiele aus der realen Welt:

  • Ich würde NetTcpBinding mit binärer Serialisierung für synchrone Hochleistungskommunikationsanforderungen zwischen einem Microsoft WCF-Client und einem Server, z. Hochladen von Dateien, Medien usw. wo Xml nicht nützlich wäre (sonst würde ich wsHttpBinding für synchrone Xml / SOAP messaging) verwenden
  • Ich würde MSMQBinding mit aktiviertem DTC verwenden, um zuverlässiges Messaging zwischen 2 oder mehr Systemen (z. B. finanziell) zu gewährleisten, wobei mindestens einer der Endpunkte in .Net und ein "kompatibler" Server (nicht unbedingt WCF ) ist. , zB BizTalk , oder andere EAI Hubs oder ESB Busse, die Adapter für MSMQ haben, zB Bridges existieren zwischen MSMQ and MQSeries ). Nachrichten würden normalerweise in einem Xml Format vorliegen.

TL; DR

  

Bedeutet das, auch wenn der Dienst noch keinen Client ausführt, der den Dienst verwendet

Ja. Wenn MSMQ lokal ausgeführt wird, erhält der Client eine sofortige erfolgreiche Antwort (dies zeigt an, dass die Nachricht in die Warteschlange gestellt wurde). Dies bedeutet jedoch nicht, dass die Nachricht erfolgreich vom Server empfangen wurde.

    
StuartLC 10.09.2012, 10:52
quelle

Tags und Links