【问题标题】:Firestore snapshot listener limit in node.js applicationnode.js 应用程序中的 Firestore 快照侦听器限制
【发布时间】:2021-07-04 04:20:31
【问题描述】:

我有一个 nodejs 后端,它在云 Firestore 数据存储之前充当 gRPC 服务器。在阅读 Firestore 的 best practices documentation 时,我注意到:“将快照侦听器限制为每个客户端 100 个”。

如果“客户端”是 Web UI 或 Flutter 应用程序,这是一个非常合理的限制,但同样的限制是否适用于通过管理界面连接到数据库的 node.js 或 golang 服务器?突然之间,在最好的情况下,我看到每个服务器进程有 100 个并发用户,如果这些用户每个都在流模式下请求单个资源,这并不是很好。

那么:当“客户端”实际上是后端 API 服务时,每个客户端限制 100 个快照侦听器是否适用?如果是这样,有哪些最佳实践可以解决这个问题?

(是的,我知道我可以在客户端本身中使用常规客户端 API,并且会这样做,我主要想知道学术意义上的限制,因为我正在考虑使用流式 GRPC,因为有一个公平的需要在存储表示和客户端使用的内容之间发生一些数据按摩,因此将所有这些都放在服务器上的一个地方,我控制推出频率比处理数据表示同步错误更容易,因为某些客户端正在使用转换器方法的旧实现。另外:这是发送给客户的额外数据/代码)。

【问题讨论】:

    标签: node.js google-cloud-firestore


    【解决方案1】:

    每个客户端 100 个快照侦听器的限制应该适用于任何客户端,包括后端 API 服务。

    Firestore 无法区分调用的来源,因此没有内置机制可以免除限制。

    【讨论】:

    • 嗯,所以这基本上消除了使用侦听器驱动的服务,该服务可以在存储罐客户端之间转换数据,除非您能够以某种合理的方式每 100 个客户端扩展一项任务。有点遗憾 - 我喜欢 Firestore 提供的快速开发,但除非我能在数据和表示层之间设置一个断路器,否则我最终不得不严重过度索引数据结构的显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 2021-04-07
    相关资源
    最近更新 更多