如今,Google Cloud不支持单个Google Cloud项目以使Cloud Datastore在纯模式(Firestore模式)和Datastore模式下运行。它说项目所有者必须choose one。
对于我来说,由于以下原因,我想同时使用纯模式和数据存储模式。
-
在本机模式下,我将能够利用各种前端Firebase SDK,以便我的应用程序无需通过自定义后端即可直接与数据存储区通信,从而可以节省延迟并受益于Firestore中的安全策略。另外,Firebase SDK在iOS / android环境中的联机/脱机缓存中也表现出色,可以节省大量工作。
-
使用数据存储模式,我将能够构建一个可扩展的后端服务,该服务对数据库的写吞吐量可以超过数万tps。本机模式可以支持大约一百万个并发连接,但是它在数据库级别具有10,000 maximum writes per second limit,对于我正在构建的基于聊天和基于事件的应用程序,我认为这可能会很低。
如果纯模式支持超过10,000次写入/秒,我会很乐意选择纯模式,而不用担心这一点,但是今天情况并非如此。
所以我开始考虑设置2个Google云项目,其中1个用于本机模式,另外1个用于数据存储模式,并一起使用。
例如,Project #1
将用于纯模式下的Cloud Datastore以及Firebase身份验证,以及Firebase和Google Cloud上几乎所有其他产品。
Project #2
仅用于数据存储模式下的Cloud Datastore,以支持基于聊天,基于事件的操作,这些操作在我的后端系统中可能会超过10,000 / tps的限制。
除了维护2个项目的管理费用外,在此策略中我还需要担心什么吗?或通常来说,拥有多个Google Cloud项目来支持一项应用/服务是否普遍?
例如在Project#1的环境中运行的系统(例如[Cloud Run,App引擎,GKE])是否可以与Project#2的Cloud Datastore通信?
例如在Project#2的环境中运行的系统是否可以使用Project#1的凭据初始化服务器端Firebase SDK,并使用Project#1 Firebase SDK验证前端应用程序生成的Firebase身份验证令牌?