【发布时间】:2020-03-05 11:51:35
【问题描述】:
今天,Google Cloud 不支持单个 Google Cloud 项目让 Cloud Datastore 同时在 Native 模式(Firestore 模式)和 Datastore 模式下运行。它说项目所有者必须choose one。
对于我来说,由于以下原因,我想同时使用 Native 模式和 Datastore 模式。
使用原生模式,我将能够利用各种前端 Firebase SDK,这样我的应用就可以直接与 Datastore 通信,而无需通过自定义后端,从而可能节省延迟并受益于 Firestore 中的安全策略。此外,Firebase SDK 在 iOS/android 环境中的在线/离线缓存方面做得非常出色,可以节省大量工作。
使用 Datastore 模式,我将能够构建一个可扩展的后端服务,其对 DB 的写入吞吐量可以超过数万 tps。虽然原生模式可以支持大约一百万个并发连接,但它在数据库级别具有 10,000 maximum writes per second limit,我认为这对于我正在构建的基于聊天和基于事件的应用程序来说可能很低。
如果 Native 模式支持超过 10,000writes/s,我会很乐意选择 Native 模式而不用担心,但今天不是这样。
所以我开始考虑设置 2 个谷歌云项目,1 个用于原生模式,1 个用于数据存储模式并将它们一起使用。
例如,Project #1 将用于原生模式下的 Cloud Datastore 以及 Firebase 身份验证,以及 Firebase 和 Google Cloud 中提供的几乎所有其他产品。
Project #2 将仅用于 Datastore 模式下的 Cloud Datastore,以支持将在我的后端系统中发生的基于聊天、基于事件的操作,这些操作可能会超过 10,000/tps 的限制。
除了维护 2 个项目的管理开销外,在这个策略中我还需要担心什么吗?或者一般来说,拥有多个谷歌云项目来支持一个应用/服务是否很常见?
例如在 Project #1 的环境中运行的系统,例如 [Cloud Run、App engine、GKE],是否能够与 Project #2 的 Cloud Datastore 进行通信?
例如在 Project #2 的环境中运行的系统能否使用 Project #1 的凭据初始化服务器端 Firebase SDK,并使用 Project #1 Firebase SDK 验证前端应用生成的 Firebase 身份验证令牌?
【问题讨论】:
标签: firebase google-cloud-platform google-cloud-firestore google-cloud-datastore