logstash/logstash — pull request #533 by michaelklishin (2013-06-28 19:42:20+00:00)
Title: Preview version of the new RabbitMQ plugin

** NOT READY FOR MERGING YET**

This PR is not complete and submitted for the Logstash community
and users to review.

This version uses different clients on different Ruby
implementations:

* [Bunny 0.9](http://rubybunny.info) on MRI (CRuby)
* [HotBunnies](http://hotbunnies.info) on JRuby

This eliminates a few limitations of the existing plugin,
based on Bunny 0.8:

* Payload of large size [< than client machine's available RAM] now
can be published without issues
* Both are fully capable, well maintained clients that open the door
to using more recent RabbitMQ features
* Both Bunny 0.9 and especially HotBunnies offer double or triple (!) digits
throughput improvements for event publishing
* Bunny 0.9 offers automatic connection recovery as an option

The choice of Hot Bunnies on JRuby is primarily drive by Bunny triggering
a JRuby-specific issue with high CPU consumption by `IO#select` implementation.
In addition, it is based on an officially supported RabbitMQ Java client
and offers the best possible throughput of all Ruby clients/engines,
matching the Java client.

This version fully fleshed out yet, needs more work, automated
tests and network failure recovery QA.