一个良好的长期战略来支持日益增加的工作量

一个良好的长期战略来支持日益增加的工作量

让我们简单一点。我有一个网站托管在一台专用服务器 (LAMP) 上。所有静态内容都已在外部 CDN 上。

PHP 页面没有问题,因为它们的加载时间很短(0.05)。

如果我发现我的专用服务器无法处理更多用户并且需要扩展它,那么有什么好的策略吗?

如果我不想使用云,我可以购买另一台专用服务器,但那时我该如何在两台专用服务器之间分配流量?

对于此问题哪一个策略比较好?

注意:是的,我当然使用数据库(mysql),并且我不存储任何会话信息

答案1

您有数据库吗?服务器上还运行着哪些与您的应用程序相关的服务?

一旦你需要扩展到不止一台服务器,第一步通常是将数据库放在一台服务器上,将应用程序放在另一台服务器上。然后分别管理/监控每台服务器。

如果数据库负载足够高,只需设置一个集群(mysql?)或副本集(例如 mongodb),以便它们自己管理负载。

对于前端,一旦一台服务器不够用,您实际上至少需要 3 台。一台用作负载平衡器,2 台以上应用服务器。根据服务器托管的位置,它们可能会提供负载平衡服务。

显示服务器数量的示例

  1. 所有内容都在一台服务器上
  2. 应用服务器+数据库服务器
  3. 主数据库服务器,从属数据库服务器,应用程序服务器
  4. 跳过
  5. 数据库集群、负载均衡器、应用服务器 1、应用服务器 2。

简而言之:根据您提供的信息,您需要多个应用服务器的时间点以及由此带来的任何问题都需要相当长一段时间才能解决。

答案2

这个问题太模糊,无法给出有意义的答案。

任何答案都必须取决于您的应用程序的具体情况。例如,它是否维护有关会话的服务器端状态?如果是,如何维护?

你对增长的预期也很重要。如果你预计它在 4 年内达到单台服务器容量的 150% 左右,我建议你在几年后购买一台更大的服务器;如果预计它在 3 个月内达到单台服务器容量的 10000%,那么你需要做更多的工作。

答案3

首先,您的 PHP 代码需要能够以某种方式处理会话信息。

您可以使用响应 URL 中编码的 cookie 或会话 ID 来完成此操作。

在此之后,您的应用程序的后端(数据库)必须能够通过锁定或其他方式处理对相同区域的同时访问。

如果您已经准备好将应用程序服务器(此处:PHP)的数量增加到 2+ - 您只需要在它前面使用某种负载平衡器。

如果您的后端成为瓶颈,那么您也需要其他策略。

相关内容