我正在从英国数据中心运行 web 应用程序。速度和预期一样好。webapp 严重依赖数据库。我想将 webapp 打开到澳大利亚和新西兰,但要保持服务器的良好响应时间。
本质上,应用程序中的每个用户都可以访问存储在数据库中两个表中的数据。每个用户使用所述数据来生成他们自己的数据组合并存储在数据库中的其他表中。该应用程序的资产更新很少。
注册的电子邮件在所有国家/地区都必须是唯一的。
根据我在这方面的有限知识,我相信有两种选择: A - 两台主机之间的完整数据库复制,一台在英国,一台在澳大利亚 B - 定期将数据从源主机英国复制到目标主机澳大利亚和新西兰。
然后离开域 1 - 理想情况下在域上是最好的,但是这需要一个路由服务器来根据位置将流量引导到不同的服务器,但这会增加响应时间 2 - 每个国家/地区的备用域直接路由到该国家/地区本地主机
我很感激我没有在这里重新发明轮子,但是像这样的场景的标准协议是什么?根据我的理解,cdn 服务更多地用于图像和视频传输,我想这里的基本问题是数据库的等价物是什么?
感谢您的帮助,约翰
您在这里有几个不同的问题,可能最好作为单独的问题提供。首先是您应该如何构建您的多站点数据库结构。第二个是您如何将用户路由到您的服务器。
对于数据库问题,您可能只需要像多主复制这样简单的东西。对此没有简单的答案,因为需要考虑的变量太多。数据量、数据库服务器软件的能力、两个站点之间连接的可靠性、站点之间实际需要共享多少数据、数据是否需要始终完全相同或最终相同。 .
对于第二个问题,如果您的网站几乎是完全动态的,CDN 可能不是一个好的选择。CDN 不用于“图像和视频交付”,它主要用于静态内容交付(图像和视频是其中的一个子集,任何未动态提供的网页、javascript 文件、css 文件等)许多 CDN提供可以通过各种技巧加速动态内容的服务,但这不是您所追求的。
我知道 CDN 和大型组织可以处理这种情况的两种主要方式。第一种是通过 DNS,使用某种机制来确定返回给客户端的 IP 地址。这可能基于客户端的 IP 地址,例如在地理定位数据库或其他机制中查找,以确定将客户端引导到的最佳位置。
第二种方法是使用任播。这里的想法是,您从多个位置宣布完全相同的 IP 地址,并依靠标准的 Internet 路由将您带到一个接近的站点(接近是相对于网络,而不是地理)。
如果您想听听我的意见,请选择一个与您想要服务的地点有良好连接的地点。例如,如果您只为英国和新西兰的人们提供服务,那么美国的一个地点可能对两者都足够好。我不知道您的应用程序做了什么,但如果几毫秒的差异会对您的用户产生有意义的影响,您可能需要重新考虑设计。从我在加利福尼亚州圣何塞工作的办公桌上,到新西兰和澳大利亚都不到四分之一秒(< 250 毫秒)。