如何使用RabbitMq Direct回复队列扩展

时间:2015-10-05 10:15:44

标签: c++ rabbitmq

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

客户代码

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 

我关注Direct reply-to rabbitmq

2 个答案:

答案 0 :(得分:0)

我说你错过了打电话

ReplyToQueue.Declare()

declare队列

修改

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

  

您无法使用amq命名队列。前缀,但回复是一个   规则的例外情况,请参阅:rabbitmq.com/direct-reply-to.html和https://github.com/rabbitmq/rabbitmq-server/blob/master/src/rabbit_channel.erl#L1264

     

"没有必要声明这个"队列"首先,虽然是客户   如果愿意,可以这样做。"这构成了回复队列文档 -

答案 1 :(得分:0)

根据评论,错误消息NOT_FOUND - no queue 'amq.rabbitmq.reply-to' in vhost '/'很可能意味着您连接的RabbitMQ实例太旧而无法支持the "direct reply-to" extension。它是在RabbitMQ 3.4.0中引入的;见the release notes