<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">&lt;<a href="mailto:simon@rabbitmq.com" target="_blank">simon@rabbitmq.com</a>&gt;</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&#39;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 &quot;winning&quot; 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>