What is most valuable?
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
How has it helped 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.
What needs 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.
For how long have I used the solution?
I have been using the solution for about four years now.
What do I think about the stability of the solution?
I have not experienced any unstable situations.
What do I think about the scalability of the solution?
I have not encountered any scalability issues.
How are customer service and technical support?
I have no experience with the technical support.
Which solution did I use previously and why did I switch?
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.
How was the initial setup?
The initial setup was very straightforward. Just follow the manual and there will be no issues.
What's my experience with pricing, setup cost, and licensing?
I have no experience in enterprise pricing and licensing.
Which other solutions did I evaluate?
I have evaluated Rabbit MQ, which is the fastest solution, but AMQ has more features and better support.
What other advice do I have?
- 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.