前段时间研究WCF接触到了MSMQ,所以认真的学习了一下,下面是我的笔记。

我理解的MSMQ

MSMQ可以被看成一个数据储存装置,就如同数据库,只不过数据存储的是一条一条的记录,而MSMQ存储的是一个一个的消息(messsge)。Message可以被理解为一种数据容器,我们在稍后会讲到。MSMQ一个重要的应用场景就是离线信息交互,例如,我们在给朋友发送邮件,而此时朋友并未登入邮箱,这个时候我们的邮件就可以发到邮件服务器的MSMQ队列中,当朋友登入邮箱的时候,系统在从服务器的MSMQ队列中取出U件。当然MSMQ的用途远不止这些,例如,充当数据缓存,实现异步操作等等,这里就不在一一举例了。

MSMQ的安装

我们在使用MSMQ的时候需要安装MSMQ,具体步骤请点击 这里。当我们正确的安装了MSMQ我们可以在"计算机管理(本地)"找到安装的MSMQ服务,如下图

    

在图上我们可以看见系统的消息队列,为我们提供了3种队列传出队列,专用队列和系统队列,而用户能自由创建的只有专用队列。我们可以尝试创建一个专用队列,"右击"专用队列,再点击"新建",得到新增界面如下图。由于我们创建的是专用队列,所以在队列命名上面显示的添加"private$",另一个事务复选框表示我们要创建的是队列是否为事务队列,这个在稍后我会详细的解释

我在专用队列里面添加一个叫"shaoshun"的专用队列,在专用队列文件夹下面就可以找到,如图

消息

消息是MSMQ的存储对象,封装为System.Messaging.Message对象,它由一个主体(body)和若干属性构成,其中我们的用户数据通常被序列化装入body主体中,这也是我们称它为数据容器的原因。除了body属性,还有几个属性相对来说比较重要:Priority(消息的优先级),Label(用户定义的消息标识),Formatter(消息的序列组件,当用户将复杂类型数据填充到body中,用户的数据会先被序列化)

队列

  在前面,我们通过手动创建了一个专用队列。我们知道队列分事务性队列和非事务性队列,默认创建的是非事务性队列。当我们勾选事务性复选框,我们就会创建事务性队列,那么什么是事务性队列呢?事务性队列将消息保存在磁盘上,实现了持久化,也就是说当我们关机,断电后,下次再启动机器,我们的消息依然保存在队列里面,而非事务性队列则将消息保存在内存中,也就是说我重启电脑后,队列里面的消息将不存在了。

队列支持事务操作,当我们把对多个消息的接收操作纳入一个事务中,那么只要有一个消息接收不成功,队列将抛弃前面接收的所有消息,实现事务回滚。队列事务同时支持消息按顺序接收与发送。

尾声

本文我对MSMQ的相关概念进行了说明,在下一篇,我将通过代码来介绍MSMQ在.net中的常规操作

转自http://www.cnblogs.com/shaoshun/p/3800208.html

MSMQ(消息队列)的更多相关文章

  1. 微软MSMQ消息队列的使用

    首先在windows系统中安装MSMQ 一.MSMQ交互 开发基于消息的应用程序从队列开始.MSMQ包含四种队列类型: 外发队列:消息发送到目的地之前,用它来临时存储消息. 公共队列:在主动目录中公布 ...

  2. 【转】MSMQ消息队列安装

    一.Windows 7安装.管理消息队列1.安装消息队列   执行用户必须要有本地 Administrators 组中的成员身份,或等效身份.   具体步骤:    开始—>控制面板—>程 ...

  3. MSMQ消息队列安装

    一.Windows 7安装.管理消息队列1.安装消息队列   执行用户必须要有本地 Administrators 组中的成员身份,或等效身份.   具体步骤:    开始—>控制面板—>程 ...

  4. 【6】.net msmq消息队列实例

    1.msmq消息队列windows环境安装 控制面板---->程序和功能---->启用或关闭Windows程序---->Microsoft Message Queue(MSMQ)服务 ...

  5. MSMQ消息队列 用法

    引言 接下来的三篇文章是讨论有关企业分布式开发的文章,这三篇文章筹划了很长时间,文章的技术并不算新,但是文章中使用到的技术都是经过笔者研究实践后总结的,正所谓站在巨人的肩膀上,笔者并不是巨人,但也希望 ...

  6. WCF分布式开发必备知识(1):MSMQ消息队列

    本章我们来了解下MSMQ的基本概念和开发过程.MSMQ全称MicroSoft Message Queue,微软消息队列,是在多个不同应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一 ...

  7. 跟我一起学WCF(1)——MSMQ消息队列

    一.引言 Windows Communication Foundation(WCF)是Microsoft为构建面向服务的应用程序而提供的统一编程模型,该服务模型提供了支持松散耦合和版本管理的序列化功能 ...

  8. C#实战Microsoft Messaging Queue(MSMQ)消息队列(干货)

    前言 在使用MSMQ之前,我们需要自行安装消息队列组件!(具体安装方法大家自己搜一下吧) 采用MSMQ带来的好处是:由于是异步通信,无论是发送方还是接收方都不用等待对方返回成功消息,就可以执行余下的代 ...

  9. MSMQ消息队列

    MSMQ全称MicroSoft Message Queue,微软消息队列,是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一 ...

  10. (转)MSMQ(消息队列)

    原文作者:虔诚者    点此传送至原文   前段时间研究WCF接触到了MSMQ,所以认真的学习了一下,下面是我的笔记. 我理解的MSMQ MSMQ可以被看成一个数据储存装置,就如同数据库,只不过数据存 ...

随机推荐

  1. Django学习--9 Admin

    1.vim settings.py 打开  'django.contrib.admin' vim urls.py 打开 from django.contrib import admin     (注意 ...

  2. 第一回 认识Bootstrap

    Bootstrap 是Twitter推出的一个用于前端开发的开源工具包. Bootstrap是基于HTML5和CSS3开发的,它在jQuery的基础上进行了更为个性化和人性化的完善,形成一套自己独有的 ...

  3. Android开发中的PhoneGap基本使用

    一.关于PhoneGap Phonegap是一款开源的开发框架,旨在让开发者使用HTML.Javascript.CSS等Web APIs开发跨平台的移动应用程序.   二.PhoneGap在Andro ...

  4. 开源而又强大的迷你型web服务器推荐

    appweb显然是不二之选,看了下最新版,已经到了4了 下载下来,http://appwebserver.org/software/appweb-4.4.4-0-src.tgz,十几M,直接吓傻,离我 ...

  5. css笔记--web端小于1px设计的处理方法

    HTML代码 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  6. web浏览器下的缓存 - Etag

    设置浏览器缓存的几种方法: Last-Modified : 服务器上文件的最后修改时间 Etag  : 文件标识 Expiers : 本地缓存目录中文件过期的时间 ( 由服务器指定具体的时间 ) Ca ...

  7. jquery横向滚动条

    此代码献给wendy 由于工作太忙,下次再整理成插件调用,先记录下来,欢迎同学们提意见. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...

  8. 利用ApnsPHP包向IOS推送消息

    header('content-type:text/html;charset=utf-8'); require_once 'ApnsPHP/Autoload.php'; require_once 'A ...

  9. [Git]代码管理工具简单使用

    1 Git简介 Git是分布式的版本控制系统,是Linux内核开发者林纳斯·托瓦兹(Linus Torvalds)为更好地管理Linux内核开发而设计.与CVS.Subversion一类的集中式版本控 ...

  10. Beaglebone Back学习四(GPIO实验)

    GPIO Beaglebone Back开发板引出了92个引脚,其中只有65个GPIO口可通过配置使用,由于引脚具有“复用”的特性,大约每个引脚有8种工作模式(Beagle System Refere ...