【发布时间】:2018-08-08 06:11:37
【问题描述】:
当使用临时队列发送和接收时,会创建一个消费者,并将noLocal 属性设置为true(请参阅RabbitTemplate#doSendAndReceiveWithTemporary method line 1297 of version 1.7.4.RELEASE)。
根据javadocs for the basicConsume method,当这个属性设置为true,那么“服务器不应该把发布在这个频道的连接上的消息传递给这个消费者”。
现在,据我所知,这个消费者正在设置为实际接收回复消息。如果我是正确的,那么由于noLocal 属性设置为true,难道不应该收到回复not吗?
当使用 RabbitMQ 作为 AMQP 代理时,可以正常接收回复消息。但是,当使用 Apache Qpid 时,没有收到回复。实际上,只有当noLocal属性设置为false时才会收到。
【问题讨论】:
-
经过更多研究后,我发现这篇文章 (rabbitmq.com/interoperability.html#qpid-python-tests) 指出 RabbitMQ 不支持非本地消费者。尽管如此,问题仍然存在,如果 RabbitMQ 支持,那么是否应该收到回复?
标签: rabbitmq spring-amqp spring-rabbit qpid