- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
11.3.3 其他高级处理功能 1.通过事务批处理提高吞吐量 (1)事务处理批处理。事务处理批处理可确保在单个事务中能够读取多个消息。 (2)并发。并发可增加吞吐量,但并发也会影响对共享资源的争用。 (3)遏制。要实现最佳性能,可能需要遏制调度程序管线中的消息数。 若要实现高吞吐量和可用性,可能还需要使用从队列中进行读取操作的WCF服务场(Services Farm)。 11.3.3 其他高级处理功能 2.使用传输安全保护消息 使用NetMsmqBinding的传输安全影响着在传输队列和目标队列之间进行传输时对MSMQ消息进行保护: (1)对消息进行签名,以确保该消息未经篡改。 (2)对消息进行加密,以确保无法查看或篡改该消息。此操作是可选的,但建议执行该操作。 (3)目标队列管理器对消息发送方进行标识以确保不可否认性。 在MSMQ中,目标队列独立于身份验证,具有一个访问控制列表(ACL),ACL的作用是检查客户端是否有权将消息发送到目标队列,同时还将检查接收应用程序是否有从目标队列接收消息的权限。 11.3.3 其他高级处理功能 3.使用消息安全保护消息 传输安全用于在客户端保护目标队列的消息,而消息安全的关键概念在于客户端保护接收应用程序(服务)的消息。使用消息安全保护WCF时,MSMQ不起任何作用。 WCF消息安全向与现有安全基础结构(如证书或Kerberos协议)集成在一起的WCF消息中添加安全标头(Security Header)。 4.以工作语义为单元排队 5.MSMQ的加密算法和哈希算法 第11章习题和上机练习 本章习题 : 1 、2 、3 本章上机练习:无。 工业和信息化部“十二五”规划教材普通高等学校“十二五”规划教材《C#网络应用编程》第3版第11章 WCF和MSMQ应用编程 11 WCF和MSMQ应用编程 11.1 MSMQ基础知识 11.2 WCF和MSMQ基本用法示例 11.3 WCF和MSMQ的高级处理功能 11.1 MSMQ基础知识 11.1.1 队列和事务 11.1.2 WCF与MSMQ相关的绑定 11.1.1 队列和事务 队列 队列的用处是捕获和传送通信双方之间交换的消息,同时还可以通过延期处理来隔离出现故障的任意一方。 临时性的非事务队列(nontransactional volatile queues),这种队列将消息保存在内存中,不使用事务来保护对消息的操作。使用这种队列时,一旦服务器发生问题,或者调用方出现异常,消息就会丢失。 永久性的事务队列(transactional queue),这种队列将消息保存在磁盘中,当服务器当机、重启或崩溃时,消息仍可以在系统恢复后被读取出来。同时,消息发布、获取和删除都在环境事务范围内操作,从而确保了消息的可靠性。 部署方案中的排队通信 11.1.1 队列和事务 事务 事务是以保证数据的完整性和业务逻辑上的一致性为目的,在不破坏数据的正确性和完整性条件下,为单个逻辑工作而执行的一系列不可分割的操作。 通过事务将消息发送到队列中时,如果处理失败或出现故障,此时该事务将被回滚,其结果就像从未将消息发送至队列一样。同样,如果通过事务接收消息,当该事务被回滚时,则结果就像从未接收过消息一样,即消息仍然被保留在要读取的队列中。 客户端和服务端使用事务用队列进行通信时,会涉及两个事务:一个在客户端上,另一个在服务端上。客户端事务处理并发送消息。提交事务时,消息位于传输队列。在服务上,事务读取来自目标队列的消息、处理消息,然后提交事务。如果在处理期间发生错误,则消息将被回滚并重新置于目标队列中。 11.1.1 队列和事务 MSMQ MSMQ利用队列将源和目标相分离。在MSMQ中,队列可以是事务性的(不会丢失消息),也可以是非事务性的(可能会丢失消息)。对于事务性的队列,由于MSMQ的队列管理器实现了可靠的消息传输协议,因此它能确保不会在传输过程中丢失消息。 安装或重新安装MSMQ 11.1.2 WCF与MSMQ相关的绑定 WCF与MSMQ相关的绑定最常用的是NetMsmqBinding类,在配置文件中对应的绑定元素为netMsmqBinding。该绑定在传输层提供队列支持,并且为松耦合应用程序、故障隔离、负载均衡和断开连接的操作提供支持。 1.WCF和MSMQ绑定适用的场合 松耦合应用程序 故障隔离 负载调节 断开连接的操作 11.1.2 WCF与MSMQ相关的绑定 2.服务终结点和队列寻址 (1)MSMQ寻址 appSettings add key=queueName value=.\private$\WcfMsmqServiceExamplesTransacted / /appSettings (2)WCF中的队列寻址
文档评论(0)