rabbitmq / rabbitmq-server

Open source RabbitMQ: core server and tier 1 (built-in) plugins
https://www.rabbitmq.com/
Other
12.11k stars 3.9k forks source link

Support for Dynamic Sources and Dynamic Targets is missing #2602

Open flaper87 opened 9 years ago

flaper87 commented 9 years ago

This is quite a key feature of the protocol and it'd be really nice to have it implemented.

michaelklishin commented 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.

flaper87 commented 9 years ago

@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.

michaelklishin commented 9 years ago

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.

flaper87 commented 9 years ago

Thank you! :+1:

kjnilsson commented 7 years ago

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.

mthmulders commented 4 years ago

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?