gpt4 book ai didi

node.js - 多个 AWS 实例和 Node 事件

转载 作者:太空宇宙 更新时间:2023-11-03 23:59:54 25 4
gpt4 key购买 nike

我在 Node 中有一个实现,其中调用 API 时会进行一些处理,并在返回响应之前等待来自另一个函数的事件。当在本地运行以及在 AWS 中的单个实例中运行时,效果很好,但是当涉及多个实例时,会出现一些问题,我假设是因为 API 是从一个实例调用的,而发射器是在另一个实例中发出的。有没有办法让所有实例中的监听器和发射器保持相同?

更新:

经过一些研究,我发现使用带有一些路由逻辑的应用程序负载均衡器可以帮助解决这个问题。我将下面的答案标记为正确的,因为虽然它没有帮助我进行 AWS 自动扩展,但它确实帮助我找到了问题的替代解决方案。

最佳答案

AFAIU,您认为从一个进程发出的事件正在另一个进程中处理,但据我所知,情况绝不会如此,因为每个进程都有自己的内存,而且事件仅与该进程关联。

我添加了一个示例代码来演示我的意思。也许如果您发布您所指的代码,我们可以检查出了什么问题。

const cluster = require("cluster");
const EventEmitter = require("events");

if (cluster.isMaster) {
cluster.fork();
const myEE = new EventEmitter();
myEE.on("foo", arg =>
console.log("emitted from ", arg, "received in master")
);
setTimeout(() => {
myEE.emit("foo", "master");
}, 1000);
} else {
const myEE = new EventEmitter();
myEE.on("foo", arg => console.log("emitted from", arg, "received in worker"));
setTimeout(() => {
myEE.emit("foo", "client");
}, 2000);
}

关于node.js - 多个 AWS 实例和 Node 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55293114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com