Cloud Datastore最佳实践:存储需要从多个区域访问的数据

时间:2018-10-18 08:44:00

标签: google-app-engine google-cloud-platform google-cloud-datastore

我目前有多个相同的GAE Web应用程序(一个在欧盟托管,一个在美国托管,并计划添加其他区域),每个应用程序都将信息存储在Cloud Datastore中(在GAE应用程序的区域)。

我希望引入一种基于域的订阅,该订阅需要满足任何区域的用户(即域1的用户1在美国,域1的用户2在EU)。

存储需要从多个区域访问的信息的最佳方法是什么?

目前的想法是:

  1. 将所有订阅信息存储在1个区域中。
  2. 在1个区域中创建一个查找表,该表将应用引导至相关区域以获取订阅信息。

我很犹豫将所有订阅信息存储在1个区域中,因为这有点违反了具有两个区域的目的(即某些个人信息可以存储在两个区域中)。

赞赏任何指导。

1 个答案:

答案 0 :(得分:1)

由于您可以使用Remote API来访问跨项目的数据存储,因此您可以执行任何操作。什么才是最好的取决于您更看重什么。您可以将所有信息复制到两个数据存储区中以确保安全,或者可以将它们存储在一个数据存储区中以便于管理,也可以根据用户注册到最近的数据存储区的位置来存储特定的用户信息。

您必须考虑“跨项目”数据存储区调用发生的频率,以优化存储。例如,如果用户的注册名和密码存储在项目A中,但其用户数据存储在项目B中,则实际上每个用户在使用您的应用程序时都需要进行远程api调用。我将根据在与用户的单个会话中可能如何访问它们的方式来逻辑存储数据。

此外,如果您担心数据冗余,则单个区域不是单点故障;数据存在的区域中有多个区域。因此,即使您所有的数据都在一个区域中的一个项目中,它仍然具有冗余性。