Open flaper87 opened 9 years ago
I'd like to be honest upfront: we try our best to support AMQP 1.0 well but it is hardly a priority. I can name only a couple of companies that actually (try to) use AMQP 1.0, the client libraries ecosystem is so immature we have to use a non-open source client for CI (!!!), and when we do get feature requests for 1.0, it's often from checkbox architects, not developers.
@michaelklishin thanks a lot for being clear to begin with. I appreciate it.
I'm part of the team working on the amqp 1.0 driver for oslo.messaging in OpenStack and I'd love to get the driver working on rabbitmq as well. One of the things missing is this feature, which is quite important for the implementation. I can implement a workaround for rabbitmq but, in the long run, it'd be nice to have it all working with the same implementation.
At least we can use this to track the things that are missing/important and it'll help you guys prioritizing the issues for this plugin. I wish I knew erlang - or at least have the time to learn it - to contribute back.
OK, the fact that it's for oslo.messaging increases the priority somewhat :) We'll comment on this thread when we have a design for this.
Thank you! :+1:
Ok I went some way in discussing this in rabbitmq/rabbitmq-amqp1.0#7 and I raised rabbitmq/rabbitmq-server#2599 for the case where I think dynamic make sense (establishing a link where the target is a queue). I appreciate this is an ancient issue by now and that @flaper87 probably have moved on to something else but it would still be interesting to see dynamic
semantics are required by oslo.
This plugin already "dynamically" create queues when establishing links.
I was trying to connect a Java application over JMS to RabbitMQ using AMQP 1.0. I used the AMQP 1.0 resource adapter which uses the Apache Qpid JMS client.
A common pattern in using JMS is to send a message with the JMSReplyTo
header pointing to a queue where the client application will wait for a response. I believe this should eventually set the reply-to
property on the corresponding AMQP message. I was hoping I could create a temporary JMS queue for that, created using JMSContext#createTemporaryQueue()
.
Unfortunately, invoking that createTemporaryQueue()
method logs a warning in RabbitMQ:
2020-05-31 13:47:57.933 [warning] <0.1941.0> Closing session for connection <0.1885.0>:
{'v1_0.error',{symbol,<<"amqp:not-implemented">>},{utf8,<<"Dynamic targets not supported">>},undefined}
I'm not sure if I understand it all correctly, but I'm tempted to think that because the AMQP 1 .0 plugin for RabbitMQ does not understand dynamic targets, I cannot use a temporary queue as the return address for my message?
This is quite a key feature of the protocol and it'd be really nice to have it implemented.