我创建了一个客户端和一个服务器。如何使用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
答案 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。