- 1
- 0
- 约2.38万字
- 约 24页
- 2020-04-22 发布于中国
- 举报
一、基本概述
MSMQ(MicroSoft Message Queue ,微软消息队列)是在多个不同的应用之间实现相互通信的
一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空
间中的任一位置。它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中
(我们称之为 Message),然后把它保存至一个系统公用空间的消息队列(Message Queue) 中;
本地或者是异地的消息接收程序再从该队列中取出发给它的消息进行处理。
在消息传递机制中,有两个比较重要的概念。一个是消息,一个是队列。消息是由通
的双方所需要传递的信息,它可以是各式各样的媒体,如文本、声音、图象等等。消息最终
的理解方式,为消息传递的双方事先商定,这样做的好处是,一是相当于对数据进行了简单
的加密,二则采用自己定义的格式可以节省通信的传递量。消息可以含有发送和接收者的标
识,这样只有指定的用户才能看到只传递给他的信息和返回是否操作成功的回执。消息也可
以含有时间戳,以便于接收方对某些与时间相关的应用进行处理。消息还可以含有到期时间,
它表明如果在指定时间内消息还未到达则作废,这主要应用与时间性关联较为紧密的应用。
消息队列是发送和接收消息的公用存储空间,它可以存在于内存中或者是物理文件中。
消息可以以两种方式发送,即快递方式(express)和可恢复模式(recoverable),它们的区别在
于,快递方式为了消息的快速传递,把消息放置于内存中,而不放于物理磁盘上,以获取较
高的处理能力;可恢复模式在传送过程的每一步骤中,都把消息写入物理磁盘中,以得到较
好的故障恢复能力。消息队列可以放置在发送方、接收方所在的机器上,也可以单独放置在
另外一台机器上。正是由于消息队列在放置方式上的灵活性,形成了消息传送机制的可靠性。
当保存消息队列的机器发生故障而重新启动以后,以可恢复模式发送的消息可以恢复到故障
发生之前的状态,而以快递方式发送的消息则丢失了。另一方面,采用消息传递机制,发送
方必要再担心接收方是否启动、是否发生故障等等非必要因素,只要消息成功发送出去,就
可以认为处理完成,而实际上对方可能甚至未曾开机,或者实际完成交易时可能已经是第二
天了。
应用程序发送消息到 MSMQ,而 MSMQ 用消息的队列来确保消息可最终到达他的目
的地。MSMQ 提供可保证的消息交付、有效的消息路由、安全和基于优先权的消息传递。
MSMQ 主要的使用函数:
利用 MSMQ,最终用户可越过有时也会脱机的网络和系统相互通讯,使其独立于通讯程序
和系统的当前状态。而开发者可利用 MSMQ 把精力集中于商务处理的编程而不是网络问
题,因为 MSMQ 提供了网络通讯方面的保证。系统管理员可用 MSMQ 的 Explorer 有效
地管理大型的、复杂的网络上的消息队列。通过 MSMQ,MIS 系统的决策人可获得更可
赖的通讯在诸于审查、网络相关的分布应用程序;有效使用网络资源;减少软件开发和维护
时间;提高生产率从最终用户、开发人员及系统管理人员。
二、基本操作方法
用 create 方法创建你指定路径的消息队列,使用 delete 方法删除一个已经存在的消息队列。
使用 exists 方法判别是否存在一个消息队列。
使用 GetPublicQueues 方法获取消息队列网络中的一个消息队列
使用 Peek 或者是 BeginPeek 方法查看消息队列中的消息,而不会删除它们
使用 Receive 或者上 BeginReceive 方法从消息队列中取出一个消息,同时在消息队列中删除
它。
使用 Send 方法,送一个消息到指定的消息队列中。
消息队列的操作
1. 创建消息队列
。创建公共消息队列
MessageQueue.Create( “MyMachine\MyQueue”)
。创建私有消息队列
MessageQueue.Create( “MyMachine\Private$\MyPrivateQueue”)
说明:标识 Private$表示创建的是私有消息队列
2 . 队列引用说明
当你创建了一个 MessageQueue 部件的一个实例以后,就应指明和哪个队列进行通信。在。
Net 中有 3 种访问指定消息队列的方法:
。使用路径,消息队列的路径被机器名和队列名唯一确定,因而可以用消息队列路径来指明
使用的消息队列。
。使用格式名(format
原创力文档

文档评论(0)