通过


可靠的服务

队列和可靠会话是实现可靠消息传送的 Windows Communication Foundation (WCF) 功能。 本主题介绍 WCF 的可靠消息传送功能。

可靠消息传送 是可靠消息源(称为 )将消息可靠地传输到可靠消息目标(称为 目标)的方式。

可靠消息传送执行以下功能:

  • 传送从源发送到目标的消息的保证,而不管消息传送或传输是否失败。

  • 将源和目标彼此分开。 这提供了源和目标的独立故障和恢复,以及消息的可靠传输和传递,即使源或目标不可用也是如此。

可靠的消息传送通常以高延迟为代价。 延迟 是消息从源到达目标所需的时间。 因此,WCF 提供以下类型的可靠消息传送:

可靠会话

可靠会话使用 WS-Reliable 消息协议在源和目标之间提供端到端可靠的传输,而不考虑分隔消息(源和目标)终结点的中介的数量或类型。 这包括不使用 SOAP(例如 HTTP 代理)或使用 SOAP(例如基于 SOAP 的路由器或网桥)的任何传输中介,这些中介要求消息在终结点之间流动。 可靠会话使用内存中传输窗口来屏蔽 SOAP 消息级故障,并在传输失败时重新建立连接。

可靠会话提供低延迟可靠消息传输。 它们通过任何代理或中介提供 SOAP 消息,相当于 TCP 通过 IP 桥为数据包提供的内容。 有关可靠会话的详细信息,请参阅 Reliable Sessions

队列

WCF 中的队列提供消息的可靠传输以及源和目标之间的分离,代价是高延迟。 WCF 排队的通信建立在消息队列 (MSMQ) 的基础之上。

MSMQ 作为 Windows 的可选组件提供。 MSMQ 服务作为 Windows 服务运行。 它代表源捕获传输队列中传输的消息,并将其传送到目标队列。 每当目标请求消息时,目标队列都会代表目标接受消息,以供以后传递。 MSMQ 管理器实现可靠的消息传输协议,以便在传输中不会丢失消息。 该协议可以是本机协议或基于 SOAP 的协议,称为 SOAP Reliable Messaging Protocol (SRMP)。

隔离,加上队列之间的可靠消息传输,使松散耦合的应用程序能够可靠地通信。 与可靠的会话不同,源和目标不必同时运行。 当源的消息生产速率和目标的消息消耗速率不匹配时,这会隐式启用将队列实际用作负载均衡机制的场景。 有关队列的详细信息,请参阅 WCF 中的队列

另请参阅