我是Rabbitmq的新手,我正在开发一个系统,中央路由器可以从客户端接收消息,将其路由到目标,然后将响应发送到resquestor客户端。
基本上,有3个模块,每个模块可以发送一个针对另一个模块的消息。我希望消息有以下流程:
RabbitMQ似乎是一个很好的候选人,但我不确定实现它的最佳方法是什么。 REQ / REP方法会更合适吗?
答案 0 :(得分:1)
这听起来像RPC的经典案例
此链接详细解释(使用python)RabbitMQ中的RPC如何工作。 RPC Client和RPC Server
但基本上,将会发生的事情来自上面的例子:
(来自RPC客户端)
Module1将连接到RabbitMQ代理(14/17),并声明一个独占队列(24) 然后它将创建消息的基本属性并设置reply_to(26)(这是一个队列名称),然后将消息发布到交换(28)
(来自RPC服务器)
模块3,将订阅Module1中的消息最终进入的队列,然后在收到消息时从该队列(40)开始消费(31)它将处理它然后重新发布结果设置路由密钥到reply_to(38)那么你的消费者(Module1)将需要从中消费(参见rpc消费者行42)