消息处理介绍

更新:2007 年 11 月

利用 Microsoft Windows“消息队列”,应用程序开发人员可以通过发送和接收消息方便地与应用程序进行快速可靠的通信。消息处理为您提供了有保障的消息传递和执行许多业务处理的可靠的防故障方法。例如,假设有一个必须每周七天,每天 24 小时运行的零售销售点应用程序。如果此应用程序后面的数据库系统出现故障,销售人员可能需要开始手动处理订单。通过使用“消息队列”,可以设置系统,将停机期间无法处理的订单放入队列并在数据库恢复后立即处理它们。

在 Microsoft Visual Studio 和 Microsoft Windows 软件开发工具包 (SDK) 中,可以使用 MessageQueue 组件的实例快捷方便地连接到现有的消息队列,检查它们的内容并发送和接收消息。此外,还可以使用“服务器资源管理器”在任何可以访问的服务器上查看消息队列,并查看有关这些队列中包含的消息的信息。可以将一个队列从“服务器资源管理器”添加到组件的设计器中,以自动创建被配置为与该队列交互的组件。

同消息队列交互

消息处理和消息为基于服务器的应用程序组件之间的进程间通信提供了强大灵活的机制。同组件间的直接调用相比,它们具有若干优点,其中包括:

  • 稳定性 — 组件失败对消息的影响程度远远小于组件间的直接调用,因为消息存储在队列中并一直留在那里,直到被适当地处理。消息处理同事务处理相似,因为消息处理是有保证的。

  • 消息优先级 — 更紧急或更重要的消息可在相对不重要的消息之前接收,因此可以为关键的应用程序保证足够的响应时间。

  • 脱机能力 — 发送消息时,它们可被发送到临时队列中并一直留在那里,直到被成功地传递。当因任何原因对所需队列的访问不可用时,用户可以继续执行操作。同时,其他操作可以继续进行,如同消息已经得到了处理一样,这是因为网络连接恢复时消息传递是有保证的。

  • 事务性消息处理 — 将多个相关消息耦合为单个事务,确保消息按顺序传递、只传递一次并且可以从它们的目标队列中被成功地检索。如果出现任何错误,将取消整个事务。

  • 安全性 - MessageQueue 组件基于的消息队列技术使用 Windows 安全来保护访问控制、提供审核并对组件发送和接收的消息进行加密和验证。

限制

系统必须满足以下要求,才能够开发 MessageQueue 组件:

  • 若要在“服务器资源管理器”中查看队列信息或以编程方式访问队列,必须在客户端计算机上安装“消息队列”。

    说明:

    安装“消息队列”时,选择要连接到的主“消息队列”服务器。不能查看或操作驻留在其他主“消息队列”服务器上的队列。

  • “消息队列”可在域环境或工作组环境中运行。在“消息队列”上下文中,域环境包括提供 Active Directory 这类目录服务的域控制器,而工作组环境是任何不提供这类目录服务的环境。

请参见

任务

如何:创建 MessageQueue 组件实例

概念

消息队列和消息处理技术背景知识