[rabbitmq-discuss] rabbitmq vs qpid

Garrett Smith g at rre.tt
Wed Nov 11 16:14:00 GMT 2009


On Wed, Nov 11, 2009 at 9:21 AM, Yao, Dongxian <yaodongxian at gmail.com> wrote:
> I am not sure if this is good question, but I really want to know how
> do you compare rabbitmq vs qpid. What is the reason you choose
> rabbitmq, better documentation? Erlang? More users? Better server/
> client support? Better performance? More reliable?  ...
>
> It looks like qpid is one step ahead with the AMQP implentation, they
> said they have implemented the AMQP 0-10, but rabbitmq is still on 0-8
> and 0-9.

I've worked with both a fair amount. We're currently using RabbitMQ
primarily because it's bulidtime/runtime requirements are simpler than
Qpid's. That probably sounds weird.

I'm a big proponent of aggressively minimizing moving parts. Qpid's
use of libboost introduces a large number of libraries that have to be
carefully managed for upgrades. We experienced a couple breakages on
Debian updates that caused us to look more closely at RabbitMQ, which
runs on Erlang/OTP.

That said, I'm a bit on the fence about the issue. We could have side
stepped the Debian issue by managing the build configuration
ourselves. However, the relative stability of Erlang/OTP (a very
conservative platform to say the least) was appealing.

As far as the merits of the two AMQP implementations, Qpid is indeed
"further along" in that they support 0.8, 0.9, and 0.10. There are
some features in the later specs that I think offer material benefit
(TTL is a big one). However, for the most part, 0.8 should suffice for
most applications. If you need something specific in a later AMQP spec
that isn't in 0.8, post a question here -- there may be an approach
you can take in RabbitMQ that works fine.

Bear in mind though that AMQP is still a work in progress. It doesn't
bother me at all that the RabbitMQ team hasn't tried to "keep up with
the Jones's" in spec implementation. The penalty Qpid has paid for
supporting all three versions is increased complexity in the code
base. If you're curious about this, download the sources for both Qpid
(server) and RabbitMQ (server) and peruse both.

Both projects are *extremely* well managed.

Both communities are friendly and responsive to questions/issues of any type.

Unfortunately (or fortunately -- a big win for AMQP!), there's no easy
formula for choosing between these two implementations. If the
size/scope of your application is large enough to justify in-depth
research, download and play around with both. If you're using a
mainstream client like Java, I'd budget 2-3 days. If you're
application is more exploratory and you want to get up and running
with AMQP quickly, I think you'll find RabbitMQ faster to get started
with.

Garrett




More information about the rabbitmq-discuss mailing list