【问题标题】:wamp apache - polling server continuouslywamp apache - 连续轮询服务器
【发布时间】:2025-12-10 12:40:01
【问题描述】:

我听说轮询服务器并不是最好的主意。

假设我制作了一个客户端-服务器应用程序。 以一个简单的游戏为例。 每个客户端每半分钟轮询一次服务器。 在 wamp 服务器超载之前可以拥有多少个客户端? 基本上 Apache 对这类东西有多健壮? 获取请求,从mysql服务器聚合数据,然后以xml格式返回数据。

【问题讨论】:

  • 这取决于多种因素,包括 Apache 的配置设置、运行它的机器类型、网络拓扑等。我建议在 serverfault.com 上询问并提供一些这些细节以获得大致的答案。

标签: apache polling


【解决方案1】:

这是一个非常开放式的问题。这完全取决于您的配置,您运行了多少 apache 服务,您有多少物理服务器,您的 mysql 服务器设置如何(是否在它自己的机器上)?您还需要记住,通过轮询服务器,您必须每次启动连接并为该通信分配资源(在较低级别的网络和您的程序中)。

如果可能,服务器将内容推送到客户端可能会更好(假设推送发生的频率低于轮询发生的频率)。

【讨论】:

    【解决方案2】:

    我的猜测是,在 Apache 服务器成为问题之前,无论请求正在处理什么,以及 mysql 数据库,你都会最大化。

    但是,如果有适当的缓存,以及足够智能的架构和实用的设计,并且有效地只有 30 秒的轮询,您应该能够支持 1000 个用户。

    但是:模拟它,快速而肮脏,大致做你认为你会做的事情,然后用 JMeter(或类似的)用 3、10、30、100、300、1000、3000,......直到你找到表演墙。

    我对聚合数据部分感到害怕...如果确实需要聚合,请仔细构建它,这样您就不需要去数据库,因为这会在生产中杀死您,而您在开发中找不到它。

    【讨论】:

      【解决方案3】:

      真的不能给你数字。这取决于很多因素(包括硬件)。

      对您来说更重要的是:您可以支持多少并发用户或结果的实时性如何?

      如果您要寻找实时结果,您可能需要调查Cometlong polling 之类的内容。

      如果您希望支持大量用户,那么长轮询方法可能并不理想,您可能需要比 Apache 更轻量级的东西。就个人而言,我是nginx的粉丝。

      编辑:如果你觉得很时髦,你最好的实时结果是Web Sockets,但如果你是微软的人,这不会像 IE 那样对你有好处'不支持他们。

      【讨论】: