单个主机可以处理多少个WCF连接?

时间:2010-03-20 14:08:32

标签: wcf

我将尝试用一个例子来解释这一点。我正在写一个聊天应用程序。有些用户可以加入聊天室。用户必须先登录才能加入任何房间。

目前,有一项服务。用户使用此服务登录。然后,用户通过此单一服务发送和接收所有已加入会议室的消息。

channel.Login("Hans Moleman", "password");
channel.JoinRoom("name of room");
channel.SendChat("name of room", "hello");

我正在考虑更改设计,以便为每个连接的房间提供新的WCF连接。在实际的应用程序中,连接数可能会在10-100的范围内,可能更多。

这是个好主意吗?或者每个客户端有大约100个连接?服务器应该能够处理许多客户端(范围100-1000,后来高达10k)。如果重要,我正在使用NetTcpBinding。

2 个答案:

答案 0 :(得分:3)

从实际角度来看,WCF可以让您拥有任意数量的连接。您可以使用服务行为设置最大数量。我相信有一个限制,但它非常高(比你想要或需要在一台服务器上更高)

除了WCF问题外,还有其他事项需要考虑:

执行此操作时,还需要考虑如何在需要时对服务进行线程化并处理并发性。

还存在硬件问题。您放置此服务器的方框是否可以处理运行的100个服务实例的负载,您的网络可以处理流量吗?你在寻找什么样的吞吐量?

总而言之,WCF将允许您拥有与硬件和网络一样多的连接。

答案 1 :(得分:1)

问题绝不像“有多少连接太多”那么简单,因为这些事情总是取决于连接的作用。如果它是一个聊天应用程序,我可以想象,大多数连接将是空闲的。在这种情况下,您可以处理比连续使用最大带宽的文件上传器更多的连接。

但是,问你一个问题,你应该真的在想:你有多少连接获得?每个连接都代表客户端和服务器的开销,您必须为每个连接单独进行身份验证。对于低带宽连接而言,这是一个很大的开销。

此外,在服务器端维护最多100个连接每个客户端可能是一个更重要的因素。

显然我对你的系统/架构一无所知,但从你的描述到目前为止,我会说它不是一个好主意。