I'm sure this must get asked routinely but for my benefit at least, which is considered best: Have many (hundreds) of queues, or a single queue of similar messages and use selectors to pick the right ones out?
To shed a little more light on my scenario we have an application to which several hundred clients connect via a web interface. This interface performs the authentication and authorisation then connects to AMQ. It subscribes currently to a queue called "Outbound.Account.X" where X is an account number. It actually uses selectors to guarantee ordering of three message types already. This appears to work "adequately". Another way might be to maintain a single queue "Outbound" and mark up the messages with an account number in addition to the existing headers. We would then see multiple connections to the same queue each using various selectors to get the individual account's messages in the correct order. Is there any advice or evidence to suggest one strategy is better than the other? Clearly there will be implementation-specific pros & cons for AMQ itself but I'm also interested in case people have experience of one strategy working better than the other (perhaps from an administrative perspective even). Thanks, James
