如果我想同时使用本机模式和数据存储模式下的数据存储,是否可以使用 2 google 个云项目?

Is it probable to use 2 google cloud projects if I want to use Datastore in native mode & datastore mode together?

今天,Google Cloud 不支持单个 google 云项目在本机模式(Firestore 模式)和 Datastore 模式下拥有 Cloud Datastore 运行。它说项目所有者必须choose one

对于我来说,由于以下原因,我想同时使用本机模式和数据存储模式。

  1. 在本机模式下,我将能够利用各种前端 Firebase SDK,这样我的应用程序就可以直接与 Datastore 通信,而无需通过自定义后端,这可能会节省延迟并受益于安全策略消防站。此外,Firebase SDK 在 iOS/android 环境中的 online/offline 缓存方面做得非常出色,可以节省大量工作。

  2. 通过Datastore模式,我将能够构建一个可扩展的后端服务,其写入数据库的吞吐量可以超过数万tps。虽然本机模式可以支持大约一百万个并发连接,但它在数据库级别有 10,000 maximum writes per second limit,我认为这对于我正在构建的基于聊天和基于事件的应用程序来说可能很低。

如果 Native 模式支持超过 10,000writes/s,我会很乐意选择 Native 模式而不用担心这个,但今天不是这样。

所以我开始考虑设置 2 个 google 云项目,1 个用于本机模式,1 个用于数据存储模式,然后一起使用。

例如,Project #1 将用于本机模式下的 Cloud Datastore 以及 Firebase 身份验证,以及 Firebase 和 Google Cloud 中可用的几乎所有其他产品。

Project #2 将仅用于数据存储模式下的云数据存储,以支持基于聊天、基于事件的操作,这些操作将在我的后端系统中发生,超过 10,000/tps 限制。

除了维护 2 个项目的可能管理开销外,在这个策略中还有什么我需要担心的吗?或者一般来说,多个 google 云项目支持一个 app/service 是否很常见?

例如在项目 #1 的环境中 运行ning 的系统,例如 [Cloud 运行、App engine、GKE],能否与项目 #2 的 Cloud Datastore 通信?

例如项目 #2 环境中的系统 运行 能否使用项目 #1 的凭据初始化服务器端 Firebase SDK,并验证前端应用程序使用项目 #1 Firebase SDK 生成的 Firebase 身份验证令牌?

是的,有些客户出于不同原因将一个应用拆分到多个 GCP 项目中 - 多个 Datastore 和 Firestore 数据库就是其中之一。

一般情况下这很好用。要注意的主要问题是较旧的 App Engine SDK 不允许您指定项目 ID,因此不能使用跨项目数据库。 Datastore 和 Firestore 的 gcloud SDK 没有这个问题。