ResponseQueue:你能在 RabbitMq 中发送一个队列作为 message/body 的一部分吗?

ResponseQueue: Can you send a queue as part of the message/body in RabbitMq?

在 MSMQ 中有一个很好的功能,称为响应队列:作为消息的一部分,您也可以发送一个 (private/invisible) 队列,在其中等待响应 - 与中的回调非常相似异步世界。从技术上讲,此功能只是私有队列和队列名字对象的包装器。 RabbitMQ 中有类似的东西吗?

其实我想通了:

私有队列是这样创建的:

privateQ = channel.queue_declare(exclusive=True)

并通过发送命令的 reply_to 道具传递响应队列(相对于消息的 属性)

channel.basic_publish(exchange='',
                      routing_key='rpc_queue',
                      properties=pika.BasicProperties(
                            reply_to = privateQ,
                            ),
                      body=request)

真正的区别 - 实际上由 API 形式化的方式暗示 - 是你不应该为每条消息创建一个回复队列 - 因为这是低效的。建议的方法是让一个专用队列接受所有响应,并合并一个关联 ID。