我在节点上使用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();
}
我想知道如何将多个节点服务器集群在一起,因为每个服务器都具有Internet连接并且可以监听firebase事件。但观察者应该只在所有服务器上运行一次代码。
答案 0 :(得分:0)
您尝试做的非常接近Firebase Queue,它使用Firebase Database transactions来确保数量有限的客户之间的数据一致性。
Firebase队列自述文件包含以下消息:
firebase-queue可能会继续存在特定的用例,但是如果您正在为Firebase寻找通用的可扩展排队系统,那么Google Cloud Functions for Firebase之上的构建很可能是理想的路由。
我认为后者也适用于你。除非让这个系统正常工作,否则你可能会发现云功能是一种更简单的方法来启动和运行自动缩放后端。