Firestore作为真正的多区域数据库

问题描述

当前,Firestore在美国和欧洲境内是多个区域,但是有什么方法可以处理来自世界各地的Firestore查询?

考虑一个拥有在全球范围内分布用户群的应用。在这种情况下,由于在项目开始时将Firestore硬编码到特定区域,我们如何处理这种情况?

有什么方法可以使所有地区的延迟时间更长?

示例:

1个请求

  User from US + Firestore in US => It will be in range of 100ms
  User from India + Firestore in US => It will be in range of 300ms (includes RTT)

5个请求

 User from US + Firestore in US => It will be in range of 500ms
 User from India + Firestore in US => It will be in range of 2.5-3Secs (includes RTT)

如您所见,在某些情况下,来自其他位置的延迟会过高。

可能的替代方法是什么?

解决方法

没有简单的配置可以使Firestore在多个地理区域内统一运行。您只能做documentation中提到的内容,而不能自己管理。

如果您绝对必须在多个地理区域中拥有Firestore数据,则需要:

  1. 为每个区域创建一个新项目,因为Firestore每个项目只能存在于一个区域中
  2. 将“主”项目中的数据镜像到其他地区的项目中
  3. 要求仅写入“主”区域,而读取可以来自任何地方

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...