我正在运行一个来自英国数据中心的webapp。速度和预期一样好。这款webapp严重依赖于数据库。我想打开网络应用程序到澳大利亚和新西兰,但保持良好的响应时间从服务器。
实际上,应用程序中的每个用户都可以访问数据库中存储在两个表中的数据。每个用户使用所述数据来生成他们自己的数据组合,并存储在db中的其他表中。该应用程序几乎没有资产更新。
登记的电子邮件必须在所有国家都是独一无二的。
根据我在这方面的有限知识,我认为有两种选择:一种是在两台主机之间进行完全的数据库复制,一种是在AUS B中--定期将数据从源主机uk复制到aus和nz的目标。
这样就会留下域1--理想情况下,在域上最好,但是这需要一种路由服务器来根据位置将流量定向到不同的服务器,但这将增加响应时间2--每个国家都有备用域直接路由到国家本地主机。
我很感激我没有在这里重新发明轮子,但是对于这样的场景,std协议是什么呢?根据我的理解,cdn服务更适用于图像和视频传输,我想这里的基本问题是数据库的等效性是什么?
谢谢你的帮助,约翰
发布于 2014-05-23 23:00:19
您这里有几个不同的问题,可能最好作为单独的问题来处理。首先是如何架构您的多站点数据库结构。第二个问题是如何将用户路由到服务器。
对于数据库问题,像多主复制这样简单的东西可能就是您所需要的。这不是一个简单的答案,因为有太多的变量需要考虑。数据量,数据库服务器软件的功能,两个站点之间连接的可靠性,站点之间实际需要共享多少数据,如果数据需要始终是完全相同的,或者最终是相同的。
对于第二个问题,如果您的站点几乎是完全动态的,那么CDN可能不是一个好选择。CDN不是用于“图像和视频传递”,而是主要用于静态内容传递(图像和视频是其中的一个子集,任何没有动态服务的网页、javascript文件、css文件等等)。许多CDN提供的服务也可以通过各种技巧来加速动态内容,但这不是您想要的。
我知道CDN和大型组织可以处理这种情况的两种主要方法。第一种是通过DNS,使用某种机制来确定要返回给客户端的IP地址。这可能基于客户端的IP地址,例如在地理定位数据库中查找,或另一种机制,以确定什么是最好的指向客户端。
第二种方法是使用选播。这里的想法是,您可以从多个位置宣布完全相同的IP地址,并依赖标准的internet路由将您带到一个关闭的站点(相对于网络,而不是地理位置)。
如果你想要我的意见,选择一个有良好连接性的地点,你想要服务的地点。例如,如果你只为英国和新西兰的人提供服务,那么在美国的单一地点可能对两国都足够了。我不知道您的应用程序是做什么的,但是如果几毫秒的差异将对您的用户产生有意义的影响,您可能需要重新考虑设计。从我在加州圣何塞工作的办公桌上看,新西兰和澳大利亚的距离还不到四分之一秒(< 250 my )。
https://serverfault.com/questions/598212
复制相似问题