【问题标题】:Scalability issues for PHP comet chat system [closed]PHP彗星聊天系统的可扩展性问题[关闭]
【发布时间】:2012-02-15 09:05:34
【问题描述】:

我正在为我的网站计划一个聊天系统。我正在考虑做ajax推送。客户端将通过调用chat.php 启动与服务器的连接。 chat.php 将执行无限循环(30 秒)。在收到新消息时,它将打印消息返回给客户端并退出连接。获取 responseText 的 ajax 脚本再次调用 chat.php。 我的问题是这样一个系统(php 驱动的 COMET)在共享主机包上的 500 个并发聊天进程的可扩展性。

【问题讨论】:

  • 这就像在问“我可以用汽车拖运货物吗?”。负载有多大,汽车有多大?如果您的共享主机包是 8088-4.77Mhz 和 640k 内存,那么我会说“不,它不会扩展”。
  • 30 秒的循环不是无限循环... ;-)
  • ^Dats Y 我提到了“无限循环(30 秒)”;)

标签: php mysql ajax comet shared-hosting


【解决方案1】:

我的问题是这样一个系统(php 驱动的 COMET)在共享主机包上的 500 个并发聊天进程的可扩展性。

您将无法在共享主机上摆脱这种情况。服务器上的 Apache 实例配置的并发连接限制可能低很多。即使不是这样,在共享主机帐户上拥有 500 个活动 PHP 实例也会引起注意,并将严重降低共享计算机上其他所有人的体验。

PHP 可能不是这项工作的最佳工具。如果你想用 PHP 来做,你将需要一个 VPS 或专用硬件。老实说,即使您使用 PHP,您也需要 VPS 或专用硬件来实现更适合该问题的解决方案(例如直接处理聊天请求的后台进程,你不能在共享主机上做的事情)。

【讨论】:

  • 如果你能给出一个关于“直接服务聊天请求的后台进程”的详细解决方案,我会很高兴 - 你刚才提到......
  • 看看 Python 的 Twisted 库和 Node.js 是很好的彗星解决方案。在这两种情况下,它们都会在后台运行并提供请求,而不是通过网络服务器进程。
猜你喜欢
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
  • 2010-11-06
  • 2011-01-29
  • 2013-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多