gpt4 book ai didi

c# - WCF - NetMsmqBinding 与 NetTcpBinding

转载 作者:太空狗 更新时间:2023-10-29 18:27:31 26 4
gpt4 key购买 nike

我正在浏览这篇文章 http://weblogs.asp.net/spano/archive/2007/10/02/choosing-the-right-wcf-binding.aspx选择装订选项。

我对

的意思产生了不同寻常的怀疑

offline or disconnected interaction, choose the NetMsmqBinding

这是否意味着即使服务没有运行仍然有客户端使用该服务?

您能分享一些实时示例吗?

最佳答案

这两个绑定(bind)完全不同。

  • NetTcpBinding 可以被认为是一种 MS 专有格式(通常是二进制),在概念上类似于 RPC(例如,可以用来替换 . NET 远程处理)。它是同步的,即客户端和服务器必须同时在线,并且客户端(几乎)立即收到响应。

  • MSMQ 是 Microsoft 的一种面向消息的中间件解决方案,它围绕异步队列展开 - 例如如果客户端发送消息时目标服务器离线,消息将在客户端排队,直到服务器恢复在线。每个队列只有一种方式,尽管双向通信可以通过从服务器返回到客户端的第二个队列来实现。发送 WCF MSMQ 消息需要在客户端上安装 MSMQ 服务。队列中的消息可以有传递“超时”,否则将被放置在适用的死信队列中。

现实世界的例子:

  • 我会使用带有二进制序列化的 NetTcpBinding 来满足 Microsoft WCF 客户端和服务器之间的高性能、同步通信需求,例如上传文件、媒体等,其中 Xml 没有用(否则,我会使用 wsHttpBinding 同步 Xml/SOAP 消息)
  • 我会使用启用 DTC 的 MSMQBinding 以确保 2 个或多个系统(例如财务)之间的可靠消息传递,其中至少一个端点位于 .Net 中,并且有一个“兼容”服务器(不一定 WCF,例如 BizTalk,或其他 EAI 集线器或 ESB 具有 MSMQ 适配器的总线,例如 MSMQ 和 MQSeries 之间存在桥梁)。消息通常采用 Xml 格式。

长话短说

Does that mean the even if service is not running still client using the service

是的。如果MSMQ在本地运行,客户端会立即得到返回成功响应(表示消息已经排队)。然而,这并不意味着该消息已被服务器成功接收。

关于c# - WCF - NetMsmqBinding 与 NetTcpBinding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com