多服务器集群节点上的 Firebase 事件监听

Firebase event listening on multi server clustered node

我在节点上使用 firebase 实时数据库。我正在使用节点集群来分叉不同的子进程。对于每个进程,都会初始化 firebase 事件侦听器。但是我只想在我的应用程序中收听一次 firebase 事件。

节点应用程序的多个实例启动多个观察者,当我基于监听器对 firebase 数据库执行某些更新时,这会改变 firebase 数据库中数据的完整性。我,稍后也会在多个aws实例上集群节点应用程序。

我的代码看起来像这样

if(cluster.isMaster){
  for (var i = 0; i < numWorkers; i++) {
    cluster.fork();
  }
}else{
  // initalize firebase event listeners
  firebaseEvents();
}

我想知道如果每台服务器都具有 Internet 连接并且可以侦听 firebase 事件,我将如何设置集群在一起的多个节点服务器。但是观察者应该 运行 代码只在所有服务器上一次。

您尝试做的事情非常接近于Firebase Queue, which uses Firebase Database transactions 确保有限数量的客户端之间的数据一致性。

Firebase 队列的自述文件包含此消息:

There may continue to be specific use-cases for firebase-queue, however if you're looking for a general purpose, scalable queueing system for Firebase then it is likely that building on top of Google Cloud Functions for Firebase is the ideal route.

我想后者可能也适用于你。除非让这个系统正常工作是一项学术练习,否则您可能会发现 Cloud Functions 是获得自动缩放后端和 运行.

的更简单方法