[rabbitmq-discuss] Announcing Vorpal Bunny 0.1
Gavin M. Roy
gmr at myyearbook.com
Fri Feb 25 03:15:16 GMT 2011
Vorpal Bunny is an experimental rabbitmq-jsonrpc-channel PHP driver designed
to allow expedited single call HTTP delivery for Basic.Publish calls to
The goal is to be a light-weight tool for higher throughput with smaller
protocol overhead for single-call of Basic.Publish per application
On Thu, Feb 24, 2011 at 10:02 PM, Gavin M. Roy <gmr at myyearbook.com> wrote:
> Vorpal Bunny is an experimental rabbitmq-jsonrpc-channel PHP driver
> designed to allow expedited single call HTTP delivery for Basic.Deliver
> calls to RabbitMQ.
> The goal is to be a light-weight tool for higher throughput with smaller
> protocol overhead for single-call of Basic.Push per application execution.
> Our use case is focused on PHP web applications that span hundreds of
> servers with hundreds of backends each. With the existing AMQP drivers for
> PHP, applications can not currently maintain consistent connections and
> publish across application executions, instead they connect, publish and
> disconnect. Vorpal Bunny is intended to reduce the overhead on the RabbitMQ
> server and the PHP application by using the jsonrpc-channel plugin, which
> maintains its own channels per session inside RabbitMQ's running instance,
> eliminating most of the AMQP protocol overhead for one off message
> This is experimental for us and has not entered production, however I felt
> it may be useful for those out there who are exploring the
> rabbitmq-jsonrpc-channel plugin as well.
> Example use:
> $vb = new VorpalBunny( 'localhost' );
> $vb->publish( "test_exchange", "test", "Hello World!" );
> The design tries to employ PHP's APC cache if available to keep one session
> with the RPC server active per Apache server on the RabbitMQ server.
> Application flow is as follows:
> 1. Construct object, determining of APC cache is available
> 2. On first call of publish, establish a session with the
> rabbitmq-jsonrpc-plugin, then send the message
> 3. On subsequent calls, call publish will send without trying to
> establish a session and then look for an error indicating the session has
> timed out or is no longer available. If this is the case, re-establish the
> session and retry the delivery.
> Vorpal Bunny is available on GitHub at
> You can also download 0.1 directly at
> I will keep you all updated to our progress and observations to how well
> this performs in a high delivery transaction environment.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss