ActiveMQ (was Re: Devel::Cover with Moose?)
simon at thegestalt.org
Thu May 26 17:25:01 BST 2011
On Tue, May 24, 2011 at 03:18:27PM +1000, Toby Wintermute said:
> By the way.. how are you finding ActiveMQ, especially when interacting
> with it from Perl?
My experience is a few years old and it's very possible things have
changed now but, given a choice between working with ActiveMQ again and
sawing off my own limbs with a spork I would choose self-mutilation with
the hybrid cutlery every time.
In my experience people's timeline with ActiveMQ goes like this (mine
"Oooh, this looks nice. Not too hard to install. Oh, and look how easy
it was to get stuff working. This is magic! Awesome. [time passes] Hmm,
that's a bit odd, I guess I'll just work around it [more time passes]
Wait? What? That's retarded! Why is it doing that? [even more time
passes] Holy Shit! Where's my data? Screw this."
Unless things have changed dramatically ActiveMQ has many, many features
pretty much all poorly documented in the typical ASF/Java project
fashion (i.e a poorly maintained wiki referencing multiple versions of
the software implicitly, a collection of hard to navigate JIRA pages and
masses of badly written Javadoc with no clear entry point). The basics
(queues, topics, failover) don't work reliably because it appears like
the dev team are hellbent on replicating every last feature of MQSeries
and TibCo Rendevous. But doing it badly.
You'll have even more trouble with Stomp. It looks like I never released
my Net::Stomp::Async module which got round the problem of only ever
being able to consume 100 messages/s (because of select()) but you might
still run into problems with the fact that Stomp assumes everything is
text which can make doing property based routing difficult.
Also, (again unless things have changed) ActiveMQ requires that backoff
is done by the client. I'm not sure if that's an issue.
I've had some issues with RabbitMQ reliability in the past and adminning
Erlang can be interesting.
More recently I've used ZeroMQ for some stuff, a little Redis PubSub
(with custom patches for queues as well as topics), TheSchwartz with
specialist workers and written a really simple system in node.js
More information about the london.pm