簡體   English   中英

WCF - NetMsmqBinding與NetTcpBinding

[英]WCF - NetMsmqBinding vs NetTcpBinding

我正在閱讀這篇文章http://weblogs.asp.net/spano/archive/2007/10/02/choosing-the-right-wcf-binding.aspx來選擇Binding選項。

我對這是什么意思有一個不同尋常的懷疑

脫機或斷開連接,選擇NetMsmqBinding

這是否意味着即使服務沒有運行仍然使用該服務的客戶端?

你能分享一些實時的例子嗎?

2個綁定完全不同。

  • NetTcpBinding可以被認為是MS專有格式(通常是二進制),在概念上與RPC類似(例如,可以用來代替.NET Remoting )。 它是同步的,即客戶端和服務器必須同時在線,並且客戶端(幾乎)立即收到響應。

  • MSMQ是Microsoft的面向消息的中間件解決方案,它圍繞異步隊列 - 例如,如果目標服務器在客戶端發送消息時處於脫機狀態,則消息將在客戶端上排隊,直到服務器重新聯機。 盡管可以通過從服務器到客戶端的第二個隊列實現雙向通信,但每個隊列只是一種方式。 發送WCF MSMQ消息要求在客戶端上安裝MSMQ服務。 隊列中的消息可以具有傳遞“超時”,否則將被置於適用的死信隊列中。

現實世界的例子:

  • 我會使用NetTcpBinding和二進制序列化來實現Microsoft WCF客戶端和服務器之間的高性能,同步通信需求,例如上傳文件,媒體等,其中Xml不會有用(否則,我會使用wsHttpBinding進行同步Xml / SOAP消息傳遞)
  • 我將使用MSMQBinding了DTC的MSMQBinding來確保2個或更多系統(例如財務)之間的可靠消息傳遞,其中至少一個端點位於.Net中,以及“兼容”服務器(不一定是WCF ,例如BizTalk或其他EAI具有適用於MSMQ適配器的集線器或ESB總線,例如, MSMQ and MQSeries之間存在橋接器。 消息通常采用Xml格式。

TL; DR

這是否意味着即使服務沒有運行仍然使用該服務的客戶端

是。 如果MSMQ在本地運行,客戶端將立即返回 成功的回應 (表示郵件已排隊)。 但這並不意味着服務器已成功接收消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM