在许多XMLHttpRequest调用的情况下,最小化服务器负载

时间:2012-12-13 10:57:22

标签: php javascript ajax

我正在建立一个用户喜欢某些文章的网站。每当 点击了like按钮我正在向服务器发送XMLHttpRequest 运行一个名为like_clicked.php的文件以及获取数据 文章ID和用户ID。此文件包含文章ID和用户ID 更新sql数据库,并在相关的xml文件中添加一个节点 给用户。这是我第一次为群众做点什么 的使用。

当有太多用户调用like_clicked.php文件时,我担心服务器负载。如果这个方法没问题,请帮助我。

我也在考虑上述方法失败的替代方案。一世 我想制作许多like_clicked文件(即 like_clicked1.php,like_clicked2.php ...)以最小化a上的负载 单个i节点。有没有一种方法可以检测出呼叫更好 下一个like_clicked文件。在这里,我们需要检测多少 每单位时间的呼叫将来自特定文件。我们怎么样 处理这个?

提前致谢。

3 个答案:

答案 0 :(得分:0)

一旦你在一台服务器上拥有这些文件 - 没有任何区别。据我所知,这些文件中应该没有繁重的计算。如果它看起来很慢 - 请检查您是否可以提出数据库请求。一旦你拥有了很多用户,你将需要放置一些服务器和一些负载均衡器来调用不同的服务器。制作具有不同名称的文件根本没有任何意义。

  

当对同一个文件或函数进行多次调用时,它会   花时间一个一个地处理所有这些。

这是不存在的,直到我们不讨论相同的会话(如果会话是默认的PHP会话)。如果会话不同(读取 - 用户不同),它将不会逐个执行请求。 PHP可以轻松处理对同一PHP文件的同时请求。

答案 1 :(得分:0)

复制代码可能是你可以尝试的更糟糕的事情:

  • 你创造了一个维护噩梦。
  • 您可以减少可能受益的所有缓存级别的影响:内存,文件系统,FastCGI,PHP字节码缓存(如果有的话)......

即使缓存的概念不存在,您也只是让磁盘上下旋转以从不同位置读取; - )

答案 2 :(得分:0)

让多个文件做同样的事情并不是一个解决方案,正如另一个答案中已经说过的那样,这将是维护的维护噩梦。

在编程中,首先让代码运行,然后在您能够看到应用程序运行方式的实际结果之后再担心优化。针对like_click.php页面的一条建议:尽量少做。

稍后,如果您发现事情正在放缓,您可能需要研究将网站集群到多个服务器的方法,以便将负载分散到不同的硬件和网络中。这对任何大型网站都很常见。