代码之家  ›  专栏  ›  技术社区  ›  beano

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

  •  1
  • beano  · 技术社区  · 6 年前

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

    我希望推出一个基于域的订阅,需要满足用户在任何地区(即用户1的域1是在美国和用户2的域1是在欧盟)。

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

    目前的想法是:

    1. 将所有订阅信息存储在1个区域中。
    2. 在1个区域中创建查找表,将应用程序定向到订阅信息的相关区域。

    我对将所有订阅信息存储在一个区域中犹豫不决,因为这在一定程度上违背了拥有两个区域的目的(即某些个人信息可能存储在两个区域中)。

    感谢您的指导。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ying Li    6 年前

    既然你能用 Remote API 要访问跨项目数据存储,您可以做任何您想做的事情。什么是最好的取决于你更看重什么。为了“安全”,您可以将所有信息复制到两个数据存储中,也可以简单地将它们存储在一个数据存储中以便于管理,或者可以根据用户注册到最近数据存储的位置来存储特定的用户信息。

    为了优化存储,您必须考虑“跨项目”数据存储调用的频率。例如,如果用户的注册和密码存储在项目A中,但其用户数据存储在项目B中,那么几乎每个用户在使用应用程序时都需要进行远程api调用。我将根据在与用户的单个会话中访问数据的方式来逻辑地存储数据。

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