当前位置:编程学习 > C#/ASP.NET >>

关于 WCF 负载平衡 的超难问题

现在使用WINFORM 做宿主,采用basichttp 协议,现在发现用户数量一多就无法连接到服务器,有没有好的办法解决这个问题? --------------------编程问答-------------------- 帮顶!!! --------------------编程问答-------------------- 自己顶,难道没有人会吗? --------------------编程问答-------------------- 没人会吗 --------------------编程问答-------------------- 题目太惊悚了,标题党越来越多了,wcf可以使用多台电脑做负载均衡的 --------------------编程问答-------------------- 有没有详细一点的资料 --------------------编程问答-------------------- 负载均衡指的是多台服务器分担业务处理,从LZ的描述上没太看出来这方面的需求,不过有关并发连接数的问题,需要更多信息,首先用户多到什么程度,如果10几个用户就歇菜了的话,八成是服务器程序里面有问题。如果是数百用户出现问题的话,可以看看线程池的缺省栈大小是否可以降低些,或采用更完善的异步处理等 --------------------编程问答-------------------- 如果真要从负载均衡角度处理,WCF是比较别扭,但将就这用也不是不行,可以设计一个任务分配服务器,帮助客户端与相对空闲的服务器端建立WCF通信 --------------------编程问答-------------------- 现在就有120多个客户端连接服务器的同一个端口,后面的一些客户端就连接不上,不知道有没有办法让服务器动态指定客户端连接别的端口 --------------------编程问答-------------------- dingqi --------------------编程问答-------------------- 这个应该不存在吧/...是不是你的数据库连接的时候设置了最大连接数???
你可以查一下.. --------------------编程问答--------------------
引用 8 楼 wangweifang1983 的回复:
现在就有120多个客户端连接服务器的同一个端口,后面的一些客户端就连接不上,不知道有没有办法让服务器动态指定客户端连接别的端口

你的问题不是端口的问题,端口只是TCP协议中为区分服务器不同服务标记而已,肯定是内部程序或硬件配置问题,不知道你的服务器配置如何,如果只有512MB内存,加上开的线程较多,是有可能造成问题的,查一查连接到最大数时服务器系统的内存使用情况吧 --------------------编程问答-------------------- 你这用winform做服务器就有点奇怪了,怎么不使用iis或者windows service呢。 --------------------编程问答-------------------- WCF有个行为属性 ServiceBehavior 里面有个值是InstanceContextMode。如果你的baseHttp支持Session的话有可能被设置为相同会话使用相同的实例。有可能造成请求队列阻塞的情况。把这个InstanceContextMode设置为percall就可以了。不知道是不是这个问题引起的。
--------------------编程问答-------------------- 可能是我没有说清楚 ,数量一多后客户端提示超时,连接不到WCF服务器,数据库服务器肯定没有问题,应该是WCF的问题,我新开一个WCF 服务 就可以连接到WCF服务器 --------------------编程问答-------------------- 为什么要到WCF这个层级去弄Load Balancing呢?

服务器的负载平衡完全可以满足你的要求.

如果你使用的Windows Server,搜索 Network Load Balancing  -  Windows Server --------------------编程问答-------------------- WCF效率确实有问题,以前应用的时候,并发100左右就会有服务器未响应的症状。
用TcpListener的话,持续并发2000连接不上的概率不到0.5%。
这两种在应用上不是一个量级的,感觉WCF只适合用来玩玩。 --------------------编程问答-------------------- --------------------编程问答-------------------- 试试对WCF进行性能调优,微软官方应该有教程的,主要是针对配置文件就行修改来管理WCF能同时接收的并发数和使用的CPU资源等等。
但是这个也只能在一定程度上提升性能,如果并发继续增大的话,那还是增加服务器做Load Balance更好。 --------------------编程问答-------------------- 顶起,期待高手 --------------------编程问答--------------------
引用 16 楼 sbwwkmyd 的回复:
WCF效率确实有问题,以前应用的时候,并发100左右就会有服务器未响应的症状。
用TcpListener的话,持续并发2000连接不上的概率不到0.5%。
这两种在应用上不是一个量级的,感觉WCF只适合用来玩玩。


同意!

而且长连接的tcp,会比短连接的,又再提升4、5倍。 --------------------编程问答-------------------- 因为握手只需要一次(或者每隔几分钟意外断线时才重新握手一次)。 --------------------编程问答-------------------- 期待好的解决方案 --------------------编程问答-------------------- 标题确实有问题啊 --------------------编程问答-------------------- 期待好的解决方案 --------------------编程问答-------------------- 负载均衡 以下不就完了~ --------------------编程问答-------------------- 负载均衡 
然后用轮询的方式访问、、、、 --------------------编程问答-------------------- 顶上,继续观众 --------------------编程问答-------------------- 顶上,继续观众 --------------------编程问答-------------------- routing 路由服务
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,