PHP推荐大型活动

时间:2011-10-13 13:35:43

标签: php javascript ajax

我要做一个有很多活动的网站,我会赞同你的建议。

同一页面将由5000名用户同时查看... 有些数据必须每5秒更新一次......每个用户都有不同的数据。 所以每5秒:5000次更新 - 5000次SQL查询...

我不确定ajax是最好的工作方式......每隔5秒就要求服务器新数据很重......

是否有其他方法可以做到这一点?如果没有,你的改进是什么改善网站?

由于

4 个答案:

答案 0 :(得分:2)

如果您需要动态请求,那么ajax就可以完成这项工作。

如果服务器无法处理它,您需要的是某种负载平衡(Web服务器集群)以及可能的集群数据库。

还要确保在后端计算,数据库查询和返回给客户端的数据量方面尽可能优化每个请求。

答案 1 :(得分:2)

嗯,你的说法是,你会有很多用户同时要求很多东西。

我要做的第一件事就是确保定期备份数据库,内容和整个站点(代码)。这样一来,如果有什么事情搞砸了大量的请求,你总会有一个备份。

接下来我要说的是确保你有多个运行该站点的服务器可以承担每台服务器的负载,因此服务器A可以有2500人,服务器B可以有2500人(例如)。 / p>

此外,如果您确保所有查询都已优化,我认为您将使用AJAX并不重要,无论您打算如何做,它都会“慢”。反击该问题的最佳方法是使用memcache或某种缓存实用程序。

要做的另一点是确保所有代码都经过高度优化和清理,以防止尽可能多的延迟和安全问题。

我确定你已经听说过了,但你可以使用“HipHop for PHP”代替C(或C ++)来运行代码,这样可以减少开销。这是我个人没有尝过的东西,但我听说它的功能非常好。

请告诉我这是否有帮助:)

答案 2 :(得分:2)

如果信息的唯一途径是数据库 - >网络服务器 - >应用程序,然后AJAX是处理它的最佳方式。仅请求数据而不是整个网页可以减轻服务器的负担。

此外,尝试平衡服务器之间的负载。您可以使用负载均衡器执行此操作,但您也可以从其他服务器获取AJAX数据。如果这意味着从不同的域获取它,那就没问题了:只需使用JSONP(http://en.wikipedia.org/wiki/JSONP)。

答案 3 :(得分:1)

首先,您不会同时获得5k更新。您的用户不会在完全相同的时间进入您的页面,因此请求将始终发生。

Ajax对我来说似乎没问题,你只需要非常小心你的请求(如果你不需要它就不要问一个字段)。

持久连接应该是个好主意。

考虑拥有多个服务器(数据库,加载balencer ......)