如何使用RabbitMq直接回复队列扩展

How to use RabbitMq Direct reply-to queue extension

本文关键字:回复 队列 扩展 何使用 RabbitMq      更新时间:2023-10-16

我创建了一个客户机和一个服务器。我如何使用RabbitMq直接回复队列扩展?

客户机代码

AMQPExchange * ex = amqp.createExchange("");
AMQPQueue * ReplyToQueue = amqp.createQueue("amq.rabbitmq.reply-to");  
ReplyToQueue->Consume(AMQP_NOACK);
在上面的代码中,Consume给出以下异常
server error 404, message 'NOT_FOUND - no queue 'amq.rabbitmq.reply-to' in vhost '/'' class=60 method=20 

我遵循直接回复rabbitmq

我想说你错过了打电话

ReplyToQueue.Declare()

声明队列

编辑

我添加了oldsound评论,因为我的答案不正确:

不能用amq来命名队列。前缀,但回复是规则的例外,参见:rabbitmq.com/direct-reply-to.html和https://github.com/rabbitmq/rabbitmq-server/blob/master/src/rabbit_channel.erl#L1264

"不需要先声明这个"队列",尽管客户端如果它愿意,可以这样做。"这是回复队列文档-

根据注释,错误信息NOT_FOUND - no queue 'amq.rabbitmq.reply-to' in vhost '/'很可能意味着你正在连接的RabbitMQ实例太旧,不支持"直接回复"扩展。它是在RabbitMQ 3.4.0中引入的;