WCF之可靠性
- 可靠性会话: 端到端(多个点到点系统组成)的可靠性,基于消息,基于WS-*,可以跨平台.

- 在信道层创建可靠性会话,由两端的缓冲区进行可靠性管理(对消息进行排序后才发给服务器端,接收到消息后回发ACK.)跟TCP类似.当消息投递不成功时,会尝试重发(Meg2)可靠性消息实现了WS—RM,WS—RX的标准.
- WS-RM消息过程: 创建序列号(标示消息在传递时的位置).由消息的发送方发送.只有头一次发送时.应答序列号创建成功. 由服务器的服务信道发送.实际传输中,对消息序列号的应答.ACK,由服务进行发送.其中,ACK在Http回应中返回,或者在TCP中以单独的消息返回.以下是调用阻塞时的情况.

- 而当是One_way时一次操作的ACK只有被客户端代理接收到后,才会进行下一次操作请求.所以客户端其实是发送后要确保这一件事情的.对发送后不管的一点点修改.
- WS-RM Policy断言: 可以包含在WSDL中,代理自动生成,可以不修改.对ACK进行设置.
- 配置: 1) 对于大量数据的传递,如果使用流传输,则不能使用可靠性消息,无法创建大尺寸的缓冲区.2) 由客户端代理信道进行重试,不影响客户端逻辑,只有当所有的重试都失败,才会给客户端一个失败的消息.否则客户端不知道有重试着一个动作.3) SessionID通常是一个GUID(128位16进制字符串{01-05-ef-ab-…..})通过随机算法生成,以实现很好的并行性.可以同时给多个客户端分配SessionID且不重复.但是对于数据的查找会带来一些麻烦.4)会话超时: 由ReceiveTimeout和当是可靠性会话时的inactivityTimeout两者的最小者决定,但是如果是应用程序会话,使用前者,并且也推荐使用前者,因为它是通用的.5)异常处理: 异常本身不安全,其可能包含与安全有关的信息.其可能含有.NET中特有的类型.不能互操作.把异常包装成错误.然后发给客户端.
- 什么时候使用: 服务有网络连接风险的;One-way;保证消息Order;在跨平台实现可靠性.
- 问题: 投递失败的问题只会被传递到信道层,无法传输到客户端进行分析,所以无法知道那个消息失败了;会带来与会话创建销毁带来的开销;异常导致信道错误;容易超时.
WCF之可靠性的更多相关文章
- 重温WCF之WCF中可靠性会话(十四)
1.WCF中可靠性会话在绑定层保证消息只会被传输一次,并且保证消息之间的顺序.当使用TCP(Transmission Control Protocol,传输控制协议)通信时,协议本身保证了可靠性.然而 ...
- WCF分布式开发步步为赢(4):WCF服务可靠性传输配置与编程开发
今天继续WCF分布式开发步步为赢系列的第4节:WCF服务可靠性传输配置与编程开发.这个章节,我们要介绍什么是WCF服务的可靠性传输,随便介绍网络协议的概念,Web Service为什么不支持可靠性传出 ...
- WCF分布式开发步步为赢(5)服务契约与操作重载
继上一节WCF分布式开发步步为赢系列的(4):WCF服务可靠性传输配置与编程开发,本节我们继续学习WCF分布式开发步步为赢的第(5)节:服务契约与操作重载.这里我们首先讲解OOP面向对象的编程中方法重 ...
- WCF服务编程 读书笔记——第1章 WCF基础(2)
续:第1章 WCF基础(1) 元数据交换 服务有两种方案可以发布自己的元数据.一种是基于HTTP-GET协议提供元数据, 另一种则是后面将要讨论的使用专门的终结点的方式.WCF能够为服务自动提供基于H ...
- 我(webabcd)的文章索引
[最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store A ...
- WCF可靠性会话之服务分流
可靠性绘画答条件: (1)服务绑定支持可靠性绘画:特别是netTcpBinding.wsHttpBinding及wsDualHttpBinding. wsDualHtttpBinding可靠性绘画始终 ...
- WCF学习系列一【WCF Interview Questions-Part 1 翻译系列】
http://www.topwcftutorials.net/2012/08/wcf-faqs-part1.html WCF Interview Questions – Part 1 This WCF ...
- WCF 服务编程 - 常用绑定
WCF 定义了5中常用的绑定. 一. 绑定 1.基本绑定: 对应于BasicHttpBinding类.基本绑定能够将WCF服务公开为传统的ASMX Web服务,使得原客户端能够与新的服务协作.如果客 ...
- WCF入门教程(五)配置文件
WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方 ...
随机推荐
- D2 前端技术论坛总结(下)
此篇文章不接上篇了,下午4场我就不一一介绍了,主要总结下 D2 整场下来都讲了些什么. 整场下来,就3个关键词:nodejs,多终端,工程化 nodejs 从杭js到d2,大会上提到最多的词汇 ...
- global $GLOBALS区别
<?phpfunction &test(){ static $b=0;//申明一个静态变量 $b=$b+1; echo $b; return $b; }} ...
- [Buzz.Today]2013.08.06
# 用简单方案解决80%的问题,再慢慢解决剩下20% [先完成,后完美]美国工程院院士.Google Fellow辛格的哲学:先用个简单方案解决80%的问题,再慢慢解决剩下20%.许多优秀人才都败在这 ...
- 乐观锁(optimistic locking)与悲观锁(pessimistic locking)
首先,乐观锁(optimistic locking)与悲观锁(pessimistic locking)基本是针对数据处理来说,也就是跟数据库有关的术语,目的是为了解决并发处理时所遇到的相关性能问题,以 ...
- flume+kafka+storm
centos06.6+JDK1.7 flume1.4+kafka2.10+storm0.9.3 zookeeper3.4.6 集群: 192.168.80.133 x01 192.168.80.134 ...
- Largest Rectangle in a Histogram 常用技巧 stack的运用
Largest Rectangle in a Histogram
- Android自定义控件:进度条的四种实现方式(Progress Wheel的解析)
最近一直在学习自定义控件,搜了许多大牛们Blog里分享的小教程,也上GitHub找了一些类似的控件进行学习.发现读起来都不太好懂,就想写这么一篇东西作为学习笔记吧. 一.控件介绍: 进度条在App中非 ...
- SOA资料
实施: 基于J2EE体系架构搭建符合SOA架构的运营管理平台 成功经验: 携程旅行网在SOA架构方面的探索 SOA在互联网系统中的应用
- C# 使用代码来操作 IIS
由于需要维护网站的时候,可以自动将所有的站点HTTP重定向到指定的静态页面上. 要操作 IIS 主要使用到的是“Microsoft.Web.Administration.dll”. 该类库不可以在引用 ...
- 【阿里云产品公测】大数据下精确快速搜索OpenSearch
[阿里云产品公测]大数据下精确快速搜索OpenSearch 作者:阿里云用户小柒2012 相信做过一两个项目的人都会遇到上级要求做一个类似百度或者谷歌的站内搜索功能.传统的sql查询只能使用like ...