Skip to content

Server-named queues are left behind #2588

@ghost

Description

I am implementing applications that communicate purely using AMQP 1.0. While I want to use RabbitMQ as AMQP broker, the applications are unaware of rabbitmq entirely.

I use a fanout exchange in RabbitMQ to deliver broadcast messages to all clients. To do so, I subscribe to the AMQP address /exchange/<name of exchange>. This creates a new queue in RabbitMQ and binds it to the correct exchange. So far, this works and messages arrive at all clients.

However, once a client disconnects, that queue stays around. According to rabbitmq/rabbitmq-amqp1.0#22, this seems intentional, but I don't understand the reasoning:

  • Since the queue's name is auto-generated, nobody has the queue name and reconnecting to the queue is impossible.
  • Even when the same client reconnects, a new queue is generated.
  • The generated queue fills up with messages that will never be received, since nobody will ever connect to it again.
  • The queues disappear when RabbitMQ is restarted.

IMO, these queues should be auto-delete. What is the reason that they are not?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions