如何应用.NET中的消息队列服务

ZDNet软件频道 时间:2006-11-24 作者:Builder.com.cn |  我要评论()
本文关键词:.net TonyPatton 消息队列 .NET
本文说明如何利用Microsoft Message Queuing(MSMQ)和.NET Framework的消息队列。

开发者经常遇到需要异步执行操作的情况(即过程不等到操作完成就开始)。消息队列提供一个中心位置或池,您可以在其中放置或从中提取数据,从而满足了这一要求。一个应用程序能够把消息存放在队列中,然后继续自己的业务,另一个应用程序在运行时再提取这些数据。

队列名称的消息组件常常令开发者感到迷惑,因为他们习惯于处理邮件消息,但消息队列的消息部分却由数据组成。它为应用程序提供有保证的消息传输。

本文将说明如何利用Microsoft Message Queuing(MSMQ)和.NET Framework的消息队列

为何使用消息队列

您可能认为您能够通过一个简单的数据库表(一个应用程序往其中写入数据,另一个应用程序从中读取数据)来应用消息队列消息队列平台更为稳定,因为它们通常拥有自己的安全机制、事务支持及其它功能。传输消息的路由功能是它的一个关键应用。MSMQ提供各种消息队列平台。

MSMQ简介

MSMQ是Windows 2000、Windows XP、Windows Server 2003的一个组件,并将继续包含在Windows Vista和以后的Windows服务器中。即使目标接收应用程序没有运行,或运行发送或接收应用程序的计算机没有联网,协同合作的应用程序仍能利用MSMQ在彼此之间发送和接收消息。在到达目标队列之前,消息由MSMQ存储并转发。接收应用程序能够从队列中恢复数据。

MSMQ之类消息队列的主要特点在于它分离发送和接收应用程序,使其不必同时运行。这意味着一个应用程序能够把数据存放在队列中,而不用理会队列中的项目是否被传送到接收应用程序。

MSMQ是Windows的一个可选组件,只需通过Windows控制面板的添加或删除Windows组件向导就可进行安装。MSMQ有两种配置模式:域模式或工作组模式(只使用私有队列)。MSMQ安装完成后,立即就可以在.NET应用程序中运行。

MSMQ交互

开发基于消息的应用程序从队列开始。MSMQ包含四种队列类型:

  • 外发队列:消息发送到目的地之前,用它来临时存储消息。
  • 公共队列:在主动目录中公布。整个网络各种服务器上的应用程序能够通过主动目录找到并应用公共队列。
  • 私有队列:这些是本地服务器上的队列,对其它服务器无效(因此这些队列不在主动目录中公布。)
  • 系统队列:包含日记队列(由系统生成)、死队列和事务型死信队列。死消息无法传送。

System.Messaging命名空间执行MSMQ的编程操作。这个命名空间有两个主要的对象:

  • Message:队列发送或读取的实际消息或数据。
  • MessageQueue:接收/发送消息的MSMQ消息队列

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134