代码之家  ›  专栏  ›  技术社区  ›  mafu

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

wcf
  •  3
  • mafu  · 技术社区  · 14 年前

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

    目前,只有一个服务。用户使用此服务登录。然后,用户通过这个单一的服务发送和接收所有加入房间的消息。

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

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

    这是个好主意吗?还是每个客户端的~100个连接太多?服务器应该能够处理许多客户机(范围100-1000,以后可达10公里)。如果这很重要,我将使用nettcpbinding。

    2 回复  |  直到 14 年前
        1
  •  3
  •   James Bender    14 年前

    从实践的角度来看,WCF将允许您拥有任意多的连接。您可以使用服务行为设置最大值。我相信有一个限制,但它非常高(比您在单个服务器上可能需要或需要的要高)

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

    当您这样做时,您还需要考虑到您将如何对服务进行线程处理,并在需要时处理并发性。

    还有一个硬件问题。您放置此服务器的盒子不仅可以处理100个正在运行的服务实例的负载,还可以处理流量吗?你想要什么样的吞吐量?

    因此,总之,WCF将允许您拥有尽可能多的硬件和网络支持的连接。

        2
  •  1
  •   Dan Puzey    14 年前

    问题从来没有“多少连接太多”那么简单,因为这样的事情总是取决于连接在做什么。如果它是一个聊天应用程序,我可以想象大部分连接都是空闲的。在这种情况下,您可以处理更多的连接,比如说,一个文件上传程序,不断使用最大带宽。

    但是,要问你这个问题,你真的应该想:你在想什么? 获得 没有多重连接?每个连接都代表了客户端和服务器的开销,您必须为每个连接分别进行身份验证。对于其他低带宽连接来说,这是一个很大的开销。

    同时,保持多达100个连接 每个客户 在服务器端可能是一个更重要的因素来考虑。

    显然,我不知道您的系统/体系结构,但从您的描述来看,到目前为止,我认为它是 一个好主意。