我们有一个在美国和欧盟托管的应用。 为了获得出色的性能,我们将在两个位置托管数据存储区实例。
现在我们的问题是如何将数据从美国数据存储区复制到EU数据存储区?
或者无论我们从技术视图中存储数据的位置是什么?
答案 0 :(得分:3)
没有多地点GAE应用程序(至少现在还没有)。创建应用程序时,可以选择应用程序的唯一位置,但无法更改。请参阅App Engine - How to create project in region us-central和gae app moving to eu-datacenter or re-opening
来自Creating a project and application的重要提示:
重要事项:每个Cloud Platform项目只能包含一个App Engine应用程序,您无法在更改后再更改该区域 创建App Engine应用程序。
现在,数据存储本身只能存在于单个云项目中,该项目还将1:1映射到一个位置。来自Google Cloud Datastore Locations:
创建Google Cloud Platform项目时,您必须选择一个 存储项目数据的位置。减少延迟和 提高可用性,将数据存储在用户和服务附近 需要它。您可以在以下位置创建项目:
europe-west
- 西欧us-central
- 美国中部us-east1
- 美国东部asia-northeast1
- 东北亚太平洋
App Engine和Cloud Datastore都列为具有多区域覆盖范围的产品(请参阅https://cloud.google.com/about/locations/)。但这种覆盖范围不是全球性的,它仍然包含在一个区域组内。美国和欧盟属于不同的地区群体,所以这对你没有帮助。来自Multi-regional resources:
与多地区资源相关的数据与a无关 特定区域可以在区域和区域之间移动 添加和删除区域组。例如,桶中的 欧盟的Google云端存储位置可让数据保持静止状态 在欧盟内部,但静止数据可以存储或移动 到欧盟内的任何云存储区域(受制于 terms of service和service specific terms)。
所以最多可以在2个不同的区域中部署2个不同的 GAE应用,最终来自(几乎)相同的代码。
您需要自己处理这些应用程序之间的数据复制,例如,为此目的在应用程序之间添加自定义/专用通信,或者使用Remote API(每个应用程序就像其他客户端一样)应用程序的远程API)。
最有可能不是微不足道的,特别是如果数据一致性很重要的话。在这种情况下,可能使用单个应用程序会更好,并且会因某些客户的位置而对某些客户造成性能损失。