Scalability is good as it has the concept of a "network of brokers", so there are no different queue names for distributed queues or physical queues.
The network of brokers scales by need but the queue name stays the same, hence the client does not need to worry about queue name change.
For example, if you use MQ from Oracle weblogic to implement messaging system with scalibility in mind, then you would implement one distributed queue on managed server and physical queues on each node, ideally the client connects to your distributed queue which has been configured to distribute messages to each physical queue by either round robin or weight policy etc.
In the above example, if you add new nodes then you have to add newly created physical queue to the distributed queue, or you have to inform the client what is the new physical queue name if your client choose to connect to the physical queue instead of distributed queue.
With the concept of the network of brokers, AMQ may add more brokers under load, but it always expose the same queue name to the client, so client won't notice the scale change and you don't need to config extra queues when it scales
Improvements to My Organization
It is cost effective and is a much cheaper solution compared to Weblogic or IBM MQ.
It has good performance in general use cases and is reliable.
It is easy to implement, especially in an MVP project for PoC.
It is easy to configure a composite queue for message forwarding.
Room for Improvement
We have had problems with the message selector as when the queue size reaches a certain level, the message selector does not have enough time to run and finish before the JMS reply timeout. In this case the client will not consume the JMS reply message even when the correlation ID matches.
Try not to use the hawt.io feature but use the AMQ console which is much better. If you have to use hawt.io , you may need to configure Jolokia, which is the JMX layer of hawt.io, to display queues properly if you have a lot of queues.
Use of Solution
I have been using the solution for about four years now.
I have not experienced any unstable situations.
I have not encountered any scalability issues.
Customer Service and Technical Support
I have no experience with the technical support.
I have used Weblogic MQ and IBM MQ before, and I switched to AMQ because we wanted to have a cheaper, faster and easier solution for messages.
The initial setup was very straightforward. Just follow the manual and there will be no issues.
Pricing, Setup Cost and Licensing
I have no experience in enterprise pricing and licensing.
Other Solutions Considered
I have evaluated Rabbit MQ, which is the fastest solution, but AMQ has more features and better support.
- Try not to use the temp queue.
- Pay attention to message selectors and queue size.
- Pay attention to queue names as if you use a wrong queue name, AMQ won't report the error but it will create a new queue for you which is sometimes hard to investigate.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
Dec 06 2016