1

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

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

我的代码看起来像这样

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

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

4

1 回答 1

0

您要做的非常接近Firebase Queue,它在后台使用Firebase 数据库事务来确保有限数量的客户端之间的数据一致性。

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

firebase-queue 可能会继续有特定的用例,但是如果您正在为 Firebase 寻找一个通用的、可扩展的队列系统,那么在Google Cloud Functions之上为 Firebase 构建可能是理想的路线。

我认为后者也可能适用于你。除非让这个系统正常工作是一项学术练习,否则您可能会发现 Cloud Functions 是一种更简单的方式来启动和运行自动扩展后端。

于 2017-11-27T15:36:07.760 回答