<div dir="ltr"><div style>A couple of other things to consider:</div><div style><br></div><div style>1) Message durability: In my own informal tests (about 8 months ago), I found that ActiveMQ took a very significant hit once you turned on message persistence. RabbitMQ also took a hit, but it was much less significant.</div>
<div><br></div><div style>2) Clustering / High Availability: If you need to cluster the brokers for HA or failover, there are significant differences here. Last I checked, ActiveMQ only supported active/passive configurations and they were fairly difficult to configure, or required separate shared storage nodes. RabbitMQ supports active/active configurations, is easy to configure, and requires no other external dependencies. That said, I did find that ActiveMQ clients have better support for automatic failover than most RabbitMQ clients (so you have to implement it yourself in RabbitMQ clients or find an add-on library for it).</div>
<div style><br></div><div style>Disclaimer: I did my research on ActiveMQ 5.7, so you may want to check if ActiveMQ 5.8 addresses some of these problems...</div><div style><br></div><div style>-Chris</div><div><br></div><div style>
-Chris</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 18, 2013 at 5:45 AM, Simon MacMullen <span dir="ltr"><<a href="mailto:simon@rabbitmq.com" target="_blank">simon@rabbitmq.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If your primary concern is latency, testing with a maxed-out message rate (which it seems is what you are doing) will give very dubious results. Maxing out the message rate means that all internal buffers are full, and thus messages take a while to get through the broker.<br>
<br>
The same is presumably true for ActiveMQ, but presumably it has smaller buffers.<br>
<br>
This is even more true if your tests are able to publish messages faster than they consume (which I guess is what's happening in your last row) - if your test ends up enqueueing messages and then taking a while to dequeue them then I am not surprised you see high latency.<br>
<br>
Dropping your message rate to even 90% of the maximum will give huge latency gains - see the final chart here:<br>
<br>
<a href="http://www.rabbitmq.com/blog/2012/04/17/rabbitmq-performance-measurements-part-1/" target="_blank">http://www.rabbitmq.com/blog/<u></u>2012/04/17/rabbitmq-<u></u>performance-measurements-part-<u></u>1/</a><br>
<br>
Finally, I would be wary of constructing a synthetic benchmark and then using it to pick which product you go with, unless you determine that one product has acceptable performance and others do not. Factors such as reliability, ease of use, feature set and so on tend to be more important than a 10% difference in performance.<br>
<br>
Hopefully I would still be saying that even if RabbitMQ were "winning" your tests :-)<br>
<br>
Cheers, Simon<div><div class="h5"><br>
<br>
On 18/06/13 04:00, JC wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Hi,<br>
<br>
We are in the process of evaluating middleware and choosing which<br>
middleware we pick for a potentially large scale distributed<br>
application. We did an evaluation between activemq and rabbitmq with<br>
different test cases. So far activemq has outperformed rabbitmq using<br>
the default out-of-box configuration especially on the latency side.<br>
We use activemq openWire protocol vs. rabbit AMQP, Here is one example<br>
result of the test we did on 1 publisher/1 consumer and we measure the<br>
latency from send to receive time. Similar results we get from<br>
multiple consumers as well. Any one has done the similar benchmark?<br>
Could you please share your experience? And if anyone knows the tips to<br>
boost rabbitmq performance, please let us know. The rabbit test client<br>
is using fanout exchange and MINIMAL_BASIC to publish messages.<br>
<br>
BrokerType Publishers Consumers SlowConsumers TgtMsgRate(mps)<br>
TgtMsgLimit AvgMsgSentRate(mps) AvgSentTime(ns) AvgMsgRcvRate(mps)<br>
MinLat(ns) MaxLat(ns) AvgLat(ns) MedLat(ns) 90%Lat(ns)<br>
Activemq@middlewarebench 1 1 0 25000 1000000 20776 5644 20776<br>
99484 7959080 259337 255760 316848<br>
Rabbit@middlewarebench 1 1 0 25000 1000000 20749 5440 20749<br>
171994 46140955 870211 913283 988979<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Activemq@middlewarebench 1 1 0 100000 1000000 62695 5347 62695<br>
100634 19872040 491588 359763 510862<br>
Rabbit@middlewarebench 1 1 0 100000 1000000 56850 6790 54512<br>
315808 822398215 487403726 487170082 696265654<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br></div></div>
______________________________<u></u>_________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">rabbitmq-discuss@lists.<u></u>rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/<u></u>cgi-bin/mailman/listinfo/<u></u>rabbitmq-discuss</a><br>
<br><span class="HOEnZb"><font color="#888888">
</font></span></blockquote><span class="HOEnZb"><font color="#888888">
<br>
<br>
-- <br>
Simon MacMullen<br>
RabbitMQ, Pivotal<br>
______________________________<u></u>_________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">rabbitmq-discuss@lists.<u></u>rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/<u></u>cgi-bin/mailman/listinfo/<u></u>rabbitmq-discuss</a><br>
</font></span></blockquote></div><br></div>