使用临时队列发送和接收时,会创建一个使用noLocal
属性设置为true
的消费者(请参阅RabbitTemplate#doSendAndReceiveWithTemporary
method line 1297 of version 1.7.4.RELEASE)。
根据javadocs for the basicConsume
method,当此属性设置为true
时,"服务器不应向此消费者提供此频道上发布的消息" #34;
现在,从我所知道的,这个消费者正在被设置为实际接收回复消息。如果我是正确的,那么由于noLocal
属性设置为true
,根本不应该收到不的回复?
当使用RabbitMQ作为AMQP代理时,正在接收回复消息。但是,使用Apache Qpid时,不会收到回复。实际上,只有在noLocal
属性设置为false
时才会收到。
答案 0 :(得分:0)
让服务器端在与客户端相同的应用程序中运行有点不寻常。这是非本地应该影响这种情况的唯一方法,因为通常客户端不会发布回复。
我们没有声称与QPID兼容(当然不是AMQP 1.0),但我看到QPID声称支持AMQP 0.9.x所以请随意打开JIRA Issue我们会看一看如时间允许。