Introducing RabbitMQ

Perhaps RabbitMQ is an alternative to ActiveMQ. At a first glance RabbitMQ is nuch smaller and thus better:

$ find activemq-core/src/main/java/org/apache/activemq/ -name '*.java' | xargs wc -l | tail -n 1
  139184 total
$ find ./erlang/rabbit/src/ -name '*.erl' | xargs wc -l | tail -n 1
    7541 total

ActiveMQ thas 20 times as many lines of code (LoC) than RabbitMQ. So by a rough estimate is has at least 20 times as manny bugs.

RabbitMQ uses AMQP as it’s native Protocol. AMQP is more complex than the STOMP Protocol promoted by ActiveMQ but of about equal complexity than OpenWire, the „real“ Protocol used by ActiveMQ internally. And AMQP seems to be backed by a reasonalby large groups of companies. There are a bunch of AMQP implementations available in the Apacke Qpid Project which was funded by RedHat. There also seem to be a few other implementations of AMQP Brokers.

On the other hand, ActiveMQ doesn’t pass the QPid AMQP complience test (whoever may be to blame):

$ ./run-tests
Using specification from: ../specs/amqp.0-8.xml
Warning: duplicate id: Constant(name=xa_rbrollback, id=1)
Warning: duplicate id: Constant(name=xa_rbtimeout, id=2)
Warning: duplicate id: Constant(name=xa_heurhaz, id=3)
Warning: duplicate id: Constant(name=xa_rdonly, id=7)
................../Users/md/[...]/codec.py:98: 
  DeprecationWarning: integer argument expected, got float
  self.write(pack(fmt, *args))
.........................Warning: duplicate id: Constant(name=xa_rbrollback, id=1)
Warning: duplicate id: Constant(name=xa_rbtimeout, id=2)
Warning: duplicate id: Constant(name=xa_heurhaz, id=3)
Warning: duplicate id: Constant(name=xa_rdonly, id=7)
....
^C

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s