MSMQ 与ESB

企业应用中,对于面向服务的基础设施体现为ESB, 面向服务的消息机制有一种是One-way, 一种是Request/response, 一种是Pub/sub 
这三种模式其实可以同分为两类,同步和异步. 对于异步而言, 可能存在一个很复杂的环境中. 客户端跟服务端需要一个可靠的消息传递机制.他们要解决网络时断时续,机器不能100%可靠等问题.这种传递机制微软的平台是MSMQ, 最近SQL 2005 也提供了个数据库段到数据库段的可靠消息传递机制.SQL Service Broker

     

MSMQ允许双方在离线的状态下进行通信,且它提供了一整套易于使用的API,并已经集成到了.NET框架中,这一点要比Service Broker好得多。

MSMQ从NT开发就有了,最新版本是4.0,MSMQ 在各个操作系统的对应版本:

MSMQ版本 操作系统
1.0 Windows NT4, Windows 95/98/Me
2.0 Windows 2000
3.0 Windows XP, Windows 2003
4.0 Windows Vista, Windows Server 2008

我们目前的应用一般都是msmq 3.0 ,他有一些特性,比如有触发器, http 转发等特性.对于事务的支持, msmq 支持一下两种类型的事务.
1. 发送消息, 目前可以在不同的机器之间开启一个事务. 可靠的发送消息.
2. 接受消息,目前只支持同一个机器上,不同程序之间的事务中接受消息,这个也是msmq 3.0 的一大不足. 因为这也限制,往往会要求处理程序跟队列在一个机器上.

MSMQ4.0在事务支持方面的得到了改进,它允许在不同的机器之间使用事务来接受消息. 多了一个subqueue,子队列,对多个in order消息的处理改进等

MSMQ 4.0新特性参看http://msdn2.microsoft.com/zh-cn/library/ms701784(en-us).aspx

MSDN Code 上有一个SOA'izing MSMQ with WCF (and Why It's Worth It),是学习WCF和MSMQ的一个我所看到的最好的教程。

ESB使用的消息通信采用MSMQ对于保证消息的可靠性,离线性方面的支持最好的,支持离线通信是任何SOA基础框架都必须考虑的关键部分。 

时间: 2025-01-19 02:25:18

MSMQ 与ESB的相关文章

SOA、ESB、NServiceBus、云计算 总结

SOA SOA 是通过功能组件化.服务化,来实现系统集成.解决信息孤岛,这是其主要目标.而更进一步则是实现更快响应业务的变化.更快推出新的应用系统.与此同时,SOA 还实现了整合资源,资源复用. SOA 服务的设计标准是粗粒度.高重用.灵活.标准.性能则并非首要考虑因素. SOA 的两大功能是集成.服务编排(BPEL.BPM).WF 在 SOA 架构中,实现服务编排的功能. 参考架构: 相关资源: SOA 的基本概念及设计原则浅议 SOA 有哪些基本原则 SOA 设计十大原则 SOA 服务设计原

企业 SOA 设计(1)–ESB 设计

最近为公司完成了一个 ESB 的设计.下面简要说明一下具体的设计方案.   企业 SOA 整体方案 在前一篇<SOA.ESB.NServiceBus.云计算 总结>中说到,SOA 是面向服务的架构,其核心思想是把业务进行组件化,而业务组件的能力服务化. 我们的整个 SOA 的设计分为两个层面:一个是系统间的 SOA 设计,另一个则是单个系统内的 SOA 设计.系统间的 SOA 设计,主要是设计一个 ESB 系统来实现各业务系统间的交互.而系统内部的 SOA 设计,则是建立一个组件化的技术平台,

面向服务架构(SOA)和企业服务总线(ESB)

学习和研究在企业中实施面向服务架构(SOA),简单回顾SOA和ESB,重点关注微软在SOA领域的相关指导和.NET社区的相关开源的解决方案,和大家一起来探讨如何在企业里实现SOA,期望有实施SOA经验的同学发表意见. 一.SOA的历史      1996年,Gartner最早提出SOA.2002年12月,Gartner提出SOA是"现代应用开发领域最重要的课题",SOA并不是一个新事物,IT组织已经成功建立并实施SOA应用软件很多年了,BEA.IBM.等厂商看到了它的价值,纷纷跟进.S

企业 SOA 设计(1)&amp;ndash;ESB 设计

最近为公司完成了一个 ESB 的设计.下面简要说明一下具体的设计方案.   企业 SOA 整体方案 在前一篇<SOA.ESB.NServiceBus.云计算 总结>中说到,SOA 是面向服务的架构,其核心思想是把业务进行组件化,而业务组件的能力服务化. 我们的整个 SOA 的设计分为两个层面:一个是系统间的 SOA 设计,另一个则是单个系统内的 SOA 设计.系统间的 SOA 设计,主要是设计一个 ESB 系统来实现各业务系统间的交互.而系统内部的 SOA 设计,则是建立一个组件化的技术平台,

wcf-使用MSMQ消息队列的WCF的效率的问题。

问题描述 使用MSMQ消息队列的WCF的效率的问题. 请教个问题,WCF在使用MSMQ的时候,每次WCF程序处理MSMQ中的数据量,每秒只有几百条. 以下是测试数据 处理消息数: 180000 开始时间: [2013-11-01 15:35:27] Start To Save Log To DB. 结束时间: [2013-11-01 15:51:12] Finish To Save Log To DB. 耗时: 00:15:45 基本上算下来也就每秒190多条,以前好的时候可以达到200多条,其

.Net下的MSMQ的同步异步调用

一.MSMQ简介 MSMQ(微软消息队列)是Windows操作系统中消息应用程序的基础,是用于创建分布式.松散连接的消息通讯应用程序的开发工具.消息队列 和电子邮件有着很多相似处,他们都包含多个属性,用于保存消息,消息类型中都指出发送者和接收者的地址:然而他们的用处却有着很大的 区别:消息队列的发送者和接收者是应用程序,而电子邮件的发送者和接收者通常是人.如同电子邮件一样,消息队列的发送和接收也不需要 发送者和接收者同时在场,可以存储在消息队列或是邮件服务器中. 二.消息队列的安装 默认情况下安

了解MSMQ,控制ASP进程

我们在使用 ASP 程序时常常会遇到这些情况:某个进程花费了过长的时间而导致在客户端过期.访问者已经放弃了对你的网站的访问而离开去了别的网站.或你的服务器上阻塞了大量的死队列时,系统出现 "Server is too busy" 错误信息. 当你在设计网站的过程中碰到这些问题时,一个有效的解决办法就是使用 Microsoft Message Queue (MSMQ) 来结束这些进程,让网站恢复正常! 到底 MSMQ 是个什么样的东西呢?我们下面作一下了解: 一. Microsoft M

了解MSMQ,控制ASP进程 (一)

 我们在使用 ASP 程序时常常会遇到这些情况:某个进程花费了过长的时间而导致在客户端过期.访问者已经放弃了对你的网站的访问而离开去了别的网站.或你的服务器上阻塞了大量的死队列时,系统出现 "Server is too busy" 错误信息. 当你在设计网站的过程中碰到这些问题时,一个有效的解决办法就是使用 Microsoft Message Queue (MSMQ) 来结束这些进程,让网站恢复正常! 到底 MSMQ 是个什么样的东西呢?我们下面作一下了解: 一. Microsoft

了解MSMQ,控制ASP进程 (二)(转贴)

进程|控制 在运用程序中 MSMQ 可以有很多的运用,但是最普遍的运用是卸载另一个线程中的进程. ( 例如和 MSMQ 在同一台机器上的 IIS) 或则是另外一台机器上的 IIS. 通过卸载这些阻塞的进程,就能够使得 ASP 程序能够继续运行下去了. 一般来说,判断是否需要卸载任务进程要做两件事: 一是根据该进程运行的时间. 二是根据用户是否有回应(例如聊天室里面某个用户几个小时都没说话了). 例如:如果服务端的一个 Web 网页的任务花费了太长的时间 , 用户会得到一个网页超时的错误信息,我们