Can we have more than one producer/consumer for a queue ?
More than one producer can send messages to the same queue, and more than one consumer can retrieve messages from the same queue.
How can you make only one consumer receives message from the queue?
By making the queue exclusive. If the queue is exclusive, then all queue messages can only be retrieved by the first consumer specified for the queue. Exclusive queues are useful when you want only one application to receive messages for a specific queue. If the queue is not exclusive, any number of receivers can retrieve messages from the queue.
Why do we need Non-exclusive queues?
Non-exclusive queues are useful for balancing the load of incoming messages across multiple receivers. Regardless of whether the queue is exclusive or not, only one consumer can ever retrieve each message that is placed on the queue.