多服务器虚拟主机/数据库/等

时间:2014-01-12 17:58:32

标签: database performance web hosting server-side

当涉及到网站托管和数据库托管的概念时,尤其是在国际层面上的一点菜鸟。很抱歉这个很长的问题,我似乎无法找到任何解释这些东西的地方,这种方式不会让你挠头并在说明中途点击“关闭标签”按钮!我觉得Stack Overflow应该对这些东西有一些一般性的指导/解释,因为有很多像我这样的人可以编写和编写网络/计算机/移动应用程序,但仍然有一个非常疲惫的理解如何服务器/托管/网站的基本实体工作。

首先,我明白了(如果我的理解是错误的,请纠正我或编辑这篇文章)。我理解一个简单,基本的网站

  1. 托管在一台服务器上(云端或物理端)。
  2. 此服务器(在Rackspace,AWS或其他虚拟主机上)允许管理员存储网站的数据库和附带的服务器代码(在Ruby / Python / PHP /等中)。
  3. 当用户导航到网站时,域将被定向到服务器,并且服务器根据请求处理并向用户中继信息。
  4. 这很简单,主要是因为它是一个网站和一个服务器

    我不明白的是,当数据库变得太大而无法在一台计算机上托管时,这一切都有效,并且您希望维护网站,使其在全球范围内具有高性能和低延迟。当从美国,印度,中国等访问谷歌,Facebook和阿里巴巴等网站时,他们会立即将信息传回给用户。当然,他们有数千台服务器。

    所以这里有一个网站的问题需要不同地区的高性能

    1. 这样的配置是什么样的?不同位置的多台服务器?这是否是维持低延迟的强制配置?或者可以通过一个位置的数据中心实现这一目标吗?
    2. 这些数据中心服务器上存储了什么?当然,来自网站的信息,但是如何呢?附带的服务器代码是否分别存储在每个服务器上?一台服务器?
    3. 这些不同的端点服务器上是否托管了数据库和所有附带的信息?网站如何知道与哪个服务器进行通信以收集所需的数据?有一个'入口/路由'服务器?如何在几个不同的服务器上维护信息,使它们能够相互通信而不会浪费宝贵的延迟时间?
    4. 是否有一个中央数据库/数据中心为不同位置的不同数据中心/服务器提供信息?或者他们拼接并放在几个不同的服务器上?如果是这样,如何维护数据以使其全部无缝连接?
    5. 基本上,我在设想任何类型的设置时都遇到了很多麻烦,这些设置不仅仅是一台服务器支持一个网站

      现在我有一个熟悉的配置,即在我房间的服务器上为我的网站运行一个MySQL数据库,而且很容易理解发生了什么。现在我想了解下一个级别,事情似乎很快变得朦胧。

1 个答案:

答案 0 :(得分:0)

对于托管在多个不同物理服务器上的数据库/代码,是否有一个入口/路由服务器的答案是肯定的。在该服务器上完成的处理量可能会有所不同 - 几乎没有任何东西(例如,只是将请求转发到负载最小的服务器的负载平衡服务器),以及在该服务器上发生的大部分(可能只有几个数据库调用)分散到不同的服务器上。)

如何配置所有服务器将取决于特定站点在并行化事物的性能优势与服务器之间通信所涉及的额外处理和网络开销之间所做的权衡。

  

分配负载的一个极端例子是Youtube   实际上与ISP有交易,其中流行的视频存储在   ISP的服务器可以更快地访问。我不知道它是如何工作的   但ISP有可能只是截获请求   那些视频,将它们发回给你,Youtube服务器永远不会   参与其中。

^我写了上面的内容,然后试图找到我读过的原始链接但不能,所以我不知道这是否属实 - 有人可以验证这个吗?