跨多台服务器的单个网站

跨多台服务器的单个网站

如果我使用了错误的术语,请原谅我。我尝试搜索我的问题,但我不太确定如何用足够简单的术语来表达它。我发现这个帖子这个帖子虽然它们相关,但是并没有回答我的具体问题。

对于需要大量服务器来运行的网站,应用程序代码本身是如何存储和管理的(暂时不考虑数据库)?为简单起见,假设 serverfault.com 有 10 台服务器为其提供支持。这 10 台服务器是否都具有完全相同的代码,还是某些部分的代码会分散到不同的服务器上?如果它们都具有完全相同的代码,管理员使用什么工具来确保服务器包含完全相同的代码?我可以想象,如果一台服务器恰好包含不同的代码,那么可能会发生糟糕的事情。

现在来说说数据库……如果你在基于 SQL 的存储系统中拥有大量数据,那么如何管理这些数据?表本身是否分散在多个服务器上,还是一般是表用户占用这台服务器,表帖子占用这台服务器,等等……?像 Facebook 或 Twitter 这样的巨头如何处理这个问题?

我在 AWS 微型实例上设置了第一台运行 Ubuntu 的 apache 服务器。有没有什么免费工具可以让我尝试这样做?我在 AWS 上找到了负载均衡器,但描述更多的是关于如何运行它们,而不是如何存储和/或检索数据本身。

谢谢

答案1

这就是所谓的负载平衡。负载平衡器将请求重定向到多个服务器上,这些服务器上加载了完全相同的代码。

至于数据库,这通常是通过将数据库复制到多个服务器,并将数据拆分到多个数据库来完成的。(例如,用户 A 的“Facebook 事物”存储在数据库服务器 A 上,用户 B 将其数据存储在服务器 B 上,依此类推)

如果您想了解更多信息,这里收集了有关 Facebook 及其架构的一些内容: https://stackoverflow.com/questions/3533948/facebook-architecture

因此对于您的情况:

  • 将相同的代码加载到多个服务器上
  • 设置负载均衡器

相关内容