WCF服务离线操作与消息队列MSMQ

7 篇文章 0 订阅
1 篇文章 0 订阅
之前曾经写过一个关于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分布式开发步步为赢(13):WCF服务离线操作与消息队列MSMQ_18823



    如果宿主离线,消息会被放入队列,等待下一次宿主联机时,在执行消息分发处理,给指定的WCF服务。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值