[rabbitmq-discuss] Announcing Vorpal Bunny 0.1

Gavin M. Roy gmr at myyearbook.com
Fri Feb 25 03:02:37 GMT 2011


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
delivery.

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
https://github.com/myYearbook/VorpalBunny

You can also download 0.1 directly at
https://github.com/myYearbook/VorpalBunny/zipball/0.1

I will keep you all updated to our progress and observations to how well
this performs in a high delivery transaction environment.

Regards,

Gavin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110224/4cfc24db/attachment.htm>


More information about the rabbitmq-discuss mailing list