Firestore 作为真正的多区域数据库
Firestore as true Multi-Region database
目前 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 数据,则需要:
- 为每个区域创建一个新项目,因为每个项目只能在一个区域中存在 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 数据,则需要:
- 为每个区域创建一个新项目,因为每个项目只能在一个区域中存在 Firestore
- 将“主”项目中的数据镜像到其他地区的项目中
- 要求只写入“主”区域,而读取可以来自任何地方