Prev Next

Integration / RabbitMQ Interview Questions

What happens when a queue has no consumers?

If a queue has no active consumers, messages simply keep accumulating in it - they are not lost, as long as the queue itself still exists.

What happens next depends on the queue's configuration:

  • A normal durable queue just grows, consuming more memory and disk over time.
  • An auto-delete queue is only removed once it has had at least one consumer that later disconnects - a queue that never had a consumer is not auto-deleted.
  • If x-max-length or a similar limit is set, older messages start getting dropped or dead-lettered once the limit is reached.
  • If x-message-ttl is set, individual messages expire and are removed or dead-lettered after their TTL passes.

Unbounded growth with no consumers is a common cause of the memory/disk alarms that trigger RabbitMQ's flow control.

By default, what happens to messages in a durable queue with no consumers?
Which setting causes individual messages to expire after a set time even with no consumer?

More Related questions...

What is RabbitMQ? What is a message broker? What is AMQP? What is a queue in RabbitMQ? What is an exchange in RabbitMQ? What are the types of exchanges in RabbitMQ? What is a binding in RabbitMQ? What is a routing key? What is a producer in RabbitMQ? What is a consumer in RabbitMQ? What is the purpose of the RabbitMQ management plugin? What are the types of acknowledgments in RabbitMQ? Define virtual host in RabbitMQ? Describe how RabbitMQ ensures message durability? List the client libraries available for RabbitMQ? How does RabbitMQ differ from Kafka? Why do we use dead-letter exchanges in RabbitMQ? How does RabbitMQ handle message acknowledgment? What is the difference between direct and topic exchange? What happens when a queue has no consumers? How is message persistence achieved in RabbitMQ? Why should you use prefetch count in RabbitMQ? When should you use a fanout exchange? What is the difference between durable and transient queues? How do you implement RPC pattern with RabbitMQ? Why does RabbitMQ use a heartbeat mechanism? What is the difference between RabbitMQ and ActiveMQ? How can you optimize RabbitMQ throughput? When would you choose quorum queues over classic queues? What is the difference between publisher confirms and transactions? Explain the lifecycle of a message in RabbitMQ? Explain the internal working of RabbitMQ clustering? Why doesn't RabbitMQ guarantee message ordering in all cases? How does RabbitMQ handle high availability? Explain the execution flow of a publisher confirm? How do you troubleshoot memory alarms in RabbitMQ? What is the difference between mirrored queues and quorum queues? How does RabbitMQ implement the Raft consensus algorithm in quorum queues? Why is TTL important for queues and messages in RabbitMQ? How do you scale RabbitMQ horizontally? Explain the internal working of the RabbitMQ shovel plugin? What is the difference between federation and shovel in RabbitMQ? How does RabbitMQ handle network partitions in a cluster? Explain the lifecycle of a consumer connection and channel? How do you troubleshoot unacknowledged message buildup in RabbitMQ?
Show more question and Answers...


Comments & Discussions