Node.js 如何在多个js服务器节点之间发送消息
因为我是新手,需要一些帮助。我需要在多个nodeJS服务器之间发送消息。我需要的通信是服务器到服务器,而不是服务器到浏览器(我发现的大多数模式是什么)。 就我所读的内容而言,我可能需要redis。我已经安装了它,可以接受连接了。 如果我从socket.io尝试此代码Node.js 如何在多个js服务器节点之间发送消息,node.js,sockets,redis,socket.io,Node.js,Sockets,Redis,Socket.io,因为我是新手,需要一些帮助。我需要在多个nodeJS服务器之间发送消息。我需要的通信是服务器到服务器,而不是服务器到浏览器(我发现的大多数模式是什么)。 就我所读的内容而言,我可能需要redis。我已经安装了它,可以接受连接了。 如果我从socket.io尝试此代码 var io = require('socket.io')(3000); var redis = require('socket.io-redis'); io.adapter(redis({ host: 'localhost', p
var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
io.emit('hi', 'all sockets');
。。。什么也没发生。有人建议我缺少什么或者我可以实现的其他模式吗?谢谢 您可以尝试使用RabbitMQ进行消息传递 在构建需要扩展的应用程序时,RabbitMQ是一个非常强大的概念。在构建分布式系统时,有一个将工作生产者与消费者(工作者)分开的工作队列是一种常见的模式
- 消息由生产者发送
- 信息被传递给消费者
- 信息通过一个通道传递
以说明,考虑需要导入大量数据的用户。处理这些数据是一项CPU密集型任务。一个简单的实现可以是:
- 用户上传数据(请求)
- 服务器处理数据
- 用结果回复用户(回复)
- 用户上传数据(请求)
- 服务器向队列发送消息
- 向用户发送一个响应,其中包含一条消息,说明数据已成功接收并将被处理(回复)
- 服务器能够立即处理其他请求
- 如果此时没有可用资源,则处理会延迟
- 如果第一次处理失败,将重试处理
我认为你可以简单地在你的应用程序中定义一个路由,比如
app.post(“/message”,…)
,然后通过一个常规的HTTP调用从另一个服务器调用它,例如使用request.post(serverURL+“/message”,{data})
。这是双向的。这是我要做的,作为第一种方法。谢谢,但我需要多个节点/服务器之间的通信。如果服务器A上发生了什么事情,其余连接的服务器(B、C、D等)应该接收A发送的数据。这就是为什么我认为使用redis可以解决我的问题,但不确定如何实现逻辑。