带有nodejs的多rabbitmq客户端/服务器

时间:2012-08-03 17:16:07

标签: node.js rabbitmq

我是Rabbitmq的新手,我正在开发一个系统,中央路由器可以从客户端接收消息,将其路由到目标,然后将响应发送到resquestor客户端。

基本上,有3个模块,每个模块可以发送一个针对另一个模块的消息。我希望消息有以下流程:

  • module1向路由器发送消息
  • 路由器将消息发送到module3(= module1的目标)
  • module3处理消息并向路由器发送响应
  • 路由器将响应转发给module1(请求者)

RabbitMQ似乎是一个很好的候选人,但我不确定实现它的最佳方法是什么。 REQ / REP方法会更合适吗?

1 个答案:

答案 0 :(得分:1)

这听起来像RPC的经典案例

此链接详细解释(使用python)RabbitMQ中的RPC如何工作。 RPC ClientRPC Server

但基本上,将会发生的事情来自上面的例子:

(来自RPC客户端)

Module1将连接到RabbitMQ代理(14/17),并声明一个独占队列(24) 然后它将创建消息的基本属性并设置reply_to(26)(这是一个队列名称),然后将消息发布到交换(28)

(来自RPC服务器)

模块3,将订阅Module1中的消息最终进入的队列,然后在收到消息时从该队列(40)开始消费(31)它将处理它然后重新发布结果设置路由密钥到reply_to(38)那么你的消费者(Module1)将需要从中消费(参见rpc消费者行42)

相关问题