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