积极答复者
WCF是否有类似的成功案例?期待jillzhang等大牛给与指点。

问题
-
程序大概是这样子工作:
从数据交换中心读取一些数据,并使用Socket发送到另外一台服务器数据分析的处理。
两台服务器之都是用windwos64,千兆以太网,同一个网断内(同一个防火墙内),很早以前的版本使用的是C++Socket,现在的版本使用的是.net的Socket,想使用WCF的远程调用来替换掉.net的Socket。
.net的Socket下的Socket一分钟Send大概5千次的样子,每次Send的包不大,大概十几K的样子。
也就是说WCF的客户端每秒钟要调用5千次代理类。由于仅仅做简单的数据分析,所以30%以下的丢包可以忍受。
初步想,OneWay,Singeletone,Throttling开大一些。但是菜鸟我对WCF实在是仅知道皮毛,想问一下群里的各位大牛有没有使用WCF作过类似的场景的应用。
恳切各位大牛指点。
PS:WCF有没有存储转发的实现,就是类似于总线或者是路由的想法,有一个Service来管理(注册,分发,验证等)所有的WCFService,Client不在直接与Service通讯,而是请求总线(或是是路由),总线(或是是路由)进一步负责将请求分发到相对应的Service,并将相应交给Client。(有点SOA的思想,或者说是一个简单的ESB的模拟)
我的MSN
tevenChennet@live.com
- 已移动 微软中文技术论坛Moderator 2009年5月20日 0:58 ([Loc]From:.NET Framework 相关)
答案
-
-
好,看了一下你的需求.总结一下你的需求有如下特点:
1) 交互频繁
2) 每次报文较大
3) 允许丢包,精确度要求较低
4) 有去无回,丢失多少,客户端无从知晓
5) 在内网,网速快
6) 路由中转功能
根据上面的需求,有如下的几个方面需要注意
1) 几十K的报文对wcf缺省设置来说,已经是非常大了,所以要想正常交互,需要所使用绑定的对数据报文大小的缺省限制。更改配置的时候,要对报文大小有比较准确的评估,尽量比较贴切,否则服务会有被攻击的危险
2) 客户端可以不知道处理结果,采用IsOneWay能较少交互。
3) 交互频繁,所以要求服务端处理能力增强。服务处理能力增强包含几个方面1)硬件处理能力 2) 软件处理能力,硬件上面不用多说,软件方面如采用缓冲区,能间接提高服务端的处理能力。消息每次到达之后,先让其简单的进入待处理队列,然后专门用一个线程来对缓冲区待处理队列中消息进行处理。这样可以防止长时间的消息处理过程妨碍服务端和客户端的正常交互
4) 内网中和外网的区别首先就是传输协议的选择上面,内网采用tcp协议,要比采用http协议上,效率高一些。
而在消息的编码上,消息序列化之后,体积越小,传递越快,越有利交互,所以采用二进制编码比xml编码更好,如果交互不是过于频繁,而你的数据报文却异常大,那采用MTOM进行压缩编码,会更大的减小消息体积,但响应会增加处理,降低性能,故而你的应用环境,可以不采用。
5)WCF有中转的功能,详情可见http://msdn.microsoft.com/zh-cn/magazine/cc500646.aspx
全部回复
-
MSN StevenChennet@live.com 不知道为什么上个帖子的S变成了头像。
想知道WCF在OneWay下具体如何工作,想知道有没有更好的方法在每次WCF调用的时候,使用更简洁的序列化(不是序列化SOAP包,以减小每次调用的数据报的大小)
-
-
好,看了一下你的需求.总结一下你的需求有如下特点:
1) 交互频繁
2) 每次报文较大
3) 允许丢包,精确度要求较低
4) 有去无回,丢失多少,客户端无从知晓
5) 在内网,网速快
6) 路由中转功能
根据上面的需求,有如下的几个方面需要注意
1) 几十K的报文对wcf缺省设置来说,已经是非常大了,所以要想正常交互,需要所使用绑定的对数据报文大小的缺省限制。更改配置的时候,要对报文大小有比较准确的评估,尽量比较贴切,否则服务会有被攻击的危险
2) 客户端可以不知道处理结果,采用IsOneWay能较少交互。
3) 交互频繁,所以要求服务端处理能力增强。服务处理能力增强包含几个方面1)硬件处理能力 2) 软件处理能力,硬件上面不用多说,软件方面如采用缓冲区,能间接提高服务端的处理能力。消息每次到达之后,先让其简单的进入待处理队列,然后专门用一个线程来对缓冲区待处理队列中消息进行处理。这样可以防止长时间的消息处理过程妨碍服务端和客户端的正常交互
4) 内网中和外网的区别首先就是传输协议的选择上面,内网采用tcp协议,要比采用http协议上,效率高一些。
而在消息的编码上,消息序列化之后,体积越小,传递越快,越有利交互,所以采用二进制编码比xml编码更好,如果交互不是过于频繁,而你的数据报文却异常大,那采用MTOM进行压缩编码,会更大的减小消息体积,但响应会增加处理,降低性能,故而你的应用环境,可以不采用。
5)WCF有中转的功能,详情可见http://msdn.microsoft.com/zh-cn/magazine/cc500646.aspx