Windows Communication Foundation 中的队列

本节的主题讨论了 Windows Communication Foundation(WCF)对队列的支持。 WCF 通过利用 Microsoft 消息队列(以前称为 MSMQ)作为传输机制来提供队列支持,并支持以下方案:

  • 松散耦合的应用程序。 发送应用程序可以向队列发送消息,而无需知道接收应用程序是否可用于处理消息。 队列提供处理独立性,允许发送应用程序以不依赖于接收应用程序处理消息的速度将消息发送到队列。 当消息发送到队列与消息处理不紧密耦合时,系统的整体可用性会提高。

  • 故障隔离。 向队列发送或接收消息的应用程序可能会失败,而不会相互影响。 例如,如果接收应用程序失败,则发送应用程序可以继续将消息发送到队列。 当接收方再次启动时,它可以处理来自队列的消息。 故障隔离会增加系统的整体可靠性和可用性。

  • 负载调节。 发送应用程序发出的消息可能使接收应用程序过载。 队列可以管理不匹配的消息生成率和处理率,以使接收方不会过载。

  • 断开连接的操作。 通过高延迟网络或有限可用性网络(例如移动设备)进行通信时,发送、接收和处理作可能会断开连接。 即使终结点断开连接,队列仍然允许这些操作继续进行。 重新建立连接后,队列会将消息转发到接收应用程序。

若要在 WCF 应用程序中使用队列功能,可以使用其中一个标准绑定,或者如果其中一个标准绑定不满足要求,则可以创建自定义绑定。 有关相关标准绑定以及如何选择一个绑定的详细信息,请参阅 如何:使用 WCF 终结点和消息队列应用程序交换消息。 有关创建自定义绑定的详细信息,请参阅 自定义绑定

本节中

队列概述
消息队列概念概述。

在 WCF 中排队
WCF 队列支持概述。

如何:使用 WCF 终结点交换排队消息
介绍如何使用 NetMsmqBinding 类在 WCF 客户端和 WCF 服务之间通信。

如何使用 WCF 终结点和消息队列应用程序交换消息
介绍如何使用 MsmqIntegrationBinding 来在 WCF 和消息队列应用程序之间进行通信。

在会话中对排队消息进行分组
说明如何在队列中对消息进行分组,以便通过单个接收应用程序促进相关消息处理。

在事务中对消息进行批处理
介绍如何在事务中批处理消息。

使用 Dead-Letter 队列处理消息传输失败
介绍如何使用死信队列处理消息传输和传递失败,以及如何处理死信队列中的消息。

有害消息处理
说明如何处理病毒消息(向接收应用程序尝试传送的次数超出最大次数的消息)。

使用传输安全性确保消息
介绍如何使用传输安全性来保护排队消息。

使用消息安全性保护消息
介绍如何使用消息安全性来保护排队消息。

排队消息系统故障排除
介绍如何排查常见的排队问题。

排队通信的最佳做法
介绍使用 WCF 排队通信的最佳做法。