wcf分布式开发步步为赢(13)wcf服务离线操作与消息队列msmq.docx

wcf分布式开发步步为赢(13)wcf服务离线操作与消息队列msmq.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WCF分布式开发步步为赢(13):WCF 服务离线操作与消息队列 MSMQ 所属分类:WCF分布式开发步步为赢,SOA and EAI . 之前曾经写过一个关于 MSMQ消息队列的文章:WCF分布式开发必备知识(1):MSMQ 消息队列,当 时的目的也是用它来作为学习 WCF消息队列MSMQ编程的基础文章。在那篇文章里,我们详细介绍了 MSMQ消息队列的基本概念、安装、部署、开发、调试等相关问题。今天我们来学习 WCF分布式开发步 步为赢(13):WCF 服务离线操作与消息队列 MSMQ。在WCF框架下使用MSMQ消息队列服务编程。 这 里我会给出一个使用 WCF MSMQ实现离线请求的DEMO示例程序。 全文结构是:【1】MSMQ基本概念【2】WCF消息队列MSMQ的优势【3】WCF消息队列MSMQ 通信框架【4】安装配置注意事项【5】示例代码 【总结】 【1】MSMQ基本概念: 简要回顾一下MSMQ的基本概念,详细的你们可以参考 WCF分布式开发必备知识(1):MSMQ 消息队列。 MSMQ全称Microsoft Message Queue ,微软消息队列,是在多个不同的应用之间实现相互通信的一 种异步传输模式,相互通信的应用可以分布于同一台机器上, 也可以分布于相连的网络空间中的任一位置。 它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为 Message ),然后把 它保存至一个系统公用空间的消息队列 (Message Queue) 中;本地或者是异地的消息接收程序再从该队 列中取岀发给它的消息进行处理。 【2】WCF消息队列MSMQ的优势: 消息队列MSMQ的优点:稳定、消息优先级、脱机能力以及安全性 ,有保障的消息传递和执行许多业 务处理的可靠的防故障机制。 因此消息队列是实现 SOA面向服务架构的重要组件之一。 WCF框架提供 了和MSMQ集成与扩展的能力。这一点也是 WCF在特性中明确指出的。 MSMQ支持离线消息模式,而 且在WCF框架下,提供了基于http桥的internet网络队列服务的调用扩展。 和MSMQ框架的结合和扩 展,使得WCF服务具有的新的特点: 【2.1】Availabiliy:可用性。这个是MSMQ离线消息的一种体现。 客户单和服务端不需要实时进行连接, 然后进行消息的交互.WCF客户端可以发送请求到离线服务端,服务上线以后在相应客户端请求。 【2.2】Disjoint :分解。可以讲工作分解为多个操作,一次放入队列。改善系统的可用性和吞吐量。 【2.3】Compensating: 补偿。对于多业务事务,可以提供单独的事物提供其它事务失败的善后处理。 【2.4】Load Leveling: 负载平衡。可以把过载的客户端请求放入队列,空闲的时候进行处理,平衡系统 的吞吐量,改善性能。 【3】WCF消息队列MSMQ通信框架: WCF使用NetMsmqBinding 来支持消息队列通信。当客户端调用服务时,客户端消息会被封装为 MSMQ消息,发送懂到特定的消息队列。服务端宿主在运行转台下会,启动通道侦听器,来检测消息队列 消息,如果发现对应的消息,会从队列里取岀消息,使用分发器转发给对应的服务。 具体的通信架构如图: WCF消息队列逋信框架 如果宿主离线,消息会被放入队列,等待下一次宿主联机时,在执行消息分发处理,给指定的 WCF服 务。 【4】安装配置注意事项: MSMQ队列几种常见的类型就是: 公共队列:在整个消息队列网络中复制,并且有可能由网络连接的所有站点访问。 专用队列:不在整个网络中发布。相反,它们仅在所驻留的本地计算机上可用。专用队列只能由知道队列 的完整路径名或标签的应用程序访问。 管理队列:包含确认在给定 消息队列”网络中发送的消息回执的消息。指定希望 MessageQueue 组件 使用的管理队列(如果有的话)。 响应队列:包含目标应用程序接收到消息时返回给发送应用程序的响应消息。 指定希望 MessageQueue 组件使用的响应队列(如果有的话)。 这里有几个问题要注意,以前很多人也在配置 MSMQ开发环境的时候遇到这个问题。 Xp环境下作 MSMQ配置开发有很多限制。这里算是做个总结供大家参考 : 公共队列需要域控制器 DC Domain Controller ; 私有队列与托管的机器同属本地,不需要 DC,成为工作组安装; 私有队列需要禁用安全模式:工作组安装与安全,安全设置需要客户端提供证书, MSMQ传输安全需要 使用Windows安全,这里需要使用 AD活动目录。 【5】示例代码: 今天的示例DEMO程序代码,主要演示的是 WCF如何配置和开发一个 MSMQ服务程序,实现 WCF 离线操作,MSMQ事务的部分由于内容较多,这里暂时不涉及。

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档