一家规模庞大的公司是如何为世界另一端的用户服务的?
以Facebook为例(总部设在加州)。如果有人从南非这样的地方命中他们的终点,他们如何被路由到最近的网络服务器?
我以为负载均衡器会这样做,但这对我来说没有意义,因为我们如何确保负载均衡器不离400毫秒rt?
发布于 2017-09-03 12:14:44
这本质上就是CDN的工作方式。当韩国的人请求一个给定的资源时,DNS服务器用位于汉城的反向代理的IP地址进行应答。来自加利福尼亚的另一个用户将获得一个不同的IP地址,该地址可能指向俄勒冈州的一个数据中心,而来自西班牙的用户可能会获得另一个IP,这将导致法兰克福的一个数据中心。
虽然CDN提供静态内容,但是动态内容会使事情变得更加复杂,来自韩国的用户将希望获得来自西班牙的朋友生成的内容,同时期望HTTP请求只需几毫秒。
其中一种技术是在世界各地的多个数据中心中复制动态内容;来自加利福尼亚的用户的更改可能只存储在俄勒冈州的服务器上,但在首尔和法兰克福也是同步的。
另一种方法是将内容保存在几个地理位置相近的数据中心(例如在北弗吉尼亚和俄勒冈州),但也可以通过与用户更接近的数据中心代理内容。换句话说,来自韩国的第一个请求某一特定数据的人将不得不等待几百毫秒的时间才能从美国服务器获得数据,而来自其他韩国用户的进一步请求将只需加载首尔服务器缓存的数据。
https://softwareengineering.stackexchange.com/questions/356726
复制相似问题