消息处理(MSMQ)基础知识

摘要:
MSMQ可以在服务器脱机时工作,将消息暂时保存在客户端的消息队列中,然后在联机时将它们发送到服务器端进行处理。

     MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置。它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为Message),然后把它保存至一个系统公用空间的消息队列(Message Queue)中;本地或者是异地的消息接收程序再从该队列中取出发给它的消息进行处理。

一、基本概念

"消息":是指两台计算机间传递的数据单位。消息可以非常简单,例如只包含文本字符串,也可以更复杂,可能包含嵌入对象。

消息队列:是在消息传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接受者不可用,消息队列会保留消息,直到成功的传递它。

消息队列 是Microsoft的消息处理技术,它在任何安装了Microsoft Window的计算机组合中,为任何应用程序提供消息处理和消息队列功能功能,无论这些计算机是否在同一个网路上或者是否同时联机。

二、队列类型

1.用户队列

公共队列:在整个"消息队列"网络中复制,并且有可能由网络连接的所有站点访问。

专用队列:不再整个网络中发布。相反,它们仅在驻留的本地计算机可用。专用队列只能由知道队列的完整路径名或标签的应用程序访问。

管理队列:包含确认在给定"消息队列"网络中发送的消息回执的消息。

响应队列:包含目标应用程序接收到消息时返回给发送应用程序的响应消息。

2.系统队列

日记队列:可选地存储发送消息的副本和从队列中移除的消息副本。

死信队列:存储无法传递或已经过期的消息副本。

报告队列:包含指示消息到达目标所经过的路由的消息,还可以包含测试消息。每台计算机只能有一个报告队列。

专用系统队列:是一系列存储系统执行消息处理操作所需的管理和通知消息的专用队列。

三、使用消息队列的优点

稳定性----组件失败对消息的影响程度远远小于组件间的直接调用,因为消息存储在队列中并一直在那里,直到被适当地处理。

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

脱机能力----发送消息时,它们可被发送到临时队列中并一直留在那里。直到被成功地传递。

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

四、Microsoft Message Queue

利用Microsoft Windows "消息队列",应用程序开发人员可以通过发送和接收消息方便地与应用程序进行快速可靠的通讯。

MSMQ与XML Web Service和.Net Remoting一样,是一种分布式的开发技术。但是在使用XML Web Service 或.Net Remoting组件时,Client端需要和Server端实时交换信息,Server端需要保持联机。MSMQ则可以在Server离线的情况下工作,将消息临时保存在Client端的消息队列中,以后联机时再发送到Server端处理。

采用MSMQ带来的好处是:由于是异步通信,无论是发送方还是接收方都不用等待对方返回成功消息,就可以执行余下的代码,因而大大的提高了事务处理的能力。

五、MSMQ与Email

MSMQ是Windows操作系统中消息应用程序的基础,是用于创建分布式,松散连接的消息通讯应用程序的开发工具。

消息队列和电子邮件有着很多的相似之处,他们都包含了多个属性,用于保存信息,消息类型中都指出发送者和接受者的地址:

然而他们的用处却有着很大的区别:消息队列的发送者和接收者是应用程序,而电子邮件的发送者和接收者通常是人。

Best Regards,

Charles Chen

msn:  gotosunny@msn.com 

免责声明:文章转载自《消息处理(MSMQ)基础知识》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux文件合并[转]WPF焦点概述下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

时间不同步导致的nova,cinder服务一会up一会down的来回跳跃

               客户反馈无法创建虚拟机(openstack版本为Juno),登录控制节点,发现nova 和cinder服务有为down的,检查down节点的nova和cinder日志,未发现任何日志信息显示error,且日志显示nova和cinder都在正常更新状态,创建虚拟机的请求,nova-schedule未做任何调度,创建的虚拟机状态直...

Mininet实验 多个数据中心的拓扑网络实现

实验目的 掌握多数据中心网络拓扑的构建 掌握多数据中心数据交换过程 实验原理 主机间发送消息上报给交换机,交换机对收到的报文信息进行分析判断,如果交换机中存在此消息相对应的流表,则交换机直接下发流表,将报文消息转发给目的主机;如果交换机中没有相对应的流表,交换机将此发送消息给控制器,控制器根据消息分析关键字段内容,进行流表下发决策,交换机再将消息发送...

md5sum 和 sha256sum用于 验证软件完整性

md5sum 和 sha256sum 都用来用来校验软件安装包的完整性,本次我们将讲解如何使用两个命令进行软件安装包的校验: sha 是什么? sha 为安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法...

红点系统设计思路

业务需求 在发布公告和有订单消息通知的时候,首页要出现红点。 点击到消息列表,查看消息详情,红点要消失。 数据库设计 红点信息表 red_point_info 字段 类型 备注 id char 主键 type tinyint 红点类型:1公告 2消息 target_key varchar target_ids的规则,比如说,role_...

详解tomcat的连接数与线程池

前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章详解Tomcat配置文件server.xml中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Ser...

WebSocket与消息推送

目录 一、Socket简介 二、WebSocket简介与消息推送 三、WebSocket客户端 四、WebSocket服务器端 五、测试运行 六、小结与消息推送框架 6.1、开源Java消息推送框架 Pushlet 6.2、开源DotNet消息推送框架SignalR B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议...