代码之家  ›  专栏  ›  技术社区  ›  Tedd Hansen

如何处理.NET中多达100K的HTTP连接

  •  7
  • Tedd Hansen  · 技术社区  · 15 年前

    我正在创建一个服务器来监视客户端在网页上的联机状态。

    • 将有80-10万(8万)个同步客户端进行监控。
    • 我用.NET来写这个。

    客户机将使用javascript(在HTML页面上)联系(单独的)服务器,告诉服务器他们是活动的/在线的。

    我正在考虑两种方法之一:

    1. 与keep-alive的持久连接定期发送。 这将使我在客户机断开连接时获得更高的精度,而且我不需要经常更新内存结构(onlineinfo),因为我们知道客户机何时来和去。网络设备/带宽的其他好处。

    2. 客户机每隔一段时间重新连接,以告诉服务器它们是活动的。 这需要大量的连接,并且必然会降低精度。我认为2-3分钟这样的时间间隔是我们能做到的最好的。80K/120=每秒660个连接ASP.NET不会执行得太快,因此我不确定这一点。8核心系统=每次执行约10 ms。

    有了这么多连接,显然存在一些限制。例如,我不能同时生成那么多线程。 对生成ASP.NET应用程序的IIS的1个请求将使用1个线程,直到请求完成。

    写一个独立的HTTP服务器是最好的选择吗? nets tcplistener是否利用httpd.sys(IIS)?

    对这个问题的任何(建设性)想法都会受到赞赏。

    编辑:通过以下来自Nicolas Repiquets答案的链接,向此文章添加一些有用的链接:

    2 回复  |  直到 14 年前
        1
  •  4
  •   Community Mohan Dere    9 年前

    100000个持久连接不是一个可行的选项。

    间隔发送HTTP请求是更可行的方法,而编写专用的HTTP服务器是IMO的一个有趣的选择。

    看看 this question 对于某些方向。

        2
  •  0
  •   Tim P.    14 年前

    我知道你是专门说.NET的,但你可能应该看看nodejs,因为它确实做了你想做的,但它是服务器端的javascript。

    推荐文章