代码之家  ›  专栏  ›  技术社区  ›  Sudhir Kumar

在多服务器集群节点上侦听Firebase事件

  •  1
  • Sudhir Kumar  · 技术社区  · 7 年前

    我正在节点上使用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事件,我将如何设置多个节点服务器集群在一起。但是观察器应该只在所有服务器上运行一次代码。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Frank van Puffelen    7 年前

    你要做的是非常接近 Firebase Queue ,它使用 Firebase Database transactions 以确保有限数量的客户端之间的数据一致性。

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

    firebase queue可能会继续存在特定的用例,但是,如果您正在为firebase寻找一个通用的、可扩展的排队系统,那么很可能在 Google Cloud Functions for Firebase 是理想的路线。

    我认为后者可能也适用于你。除非这是一个让这个系统工作的学术练习,否则你可能会发现云功能是一种更容易实现自动扩展后端并运行的方法。