[英]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.