Do you use ActiveMQ?
So I read today where LinkedIN uses ActiveMQ as part of their architecture. I haven’t used ActiveMQ personally, but we use it for a project where I work and the guy that set it up absolutely hates it now.
We were looking to use a message server for a new project and started kicking around ideas. The primary requirement was multiple language support. New stuff is largely being done in Java but we also have a really large perl codebase and some backend stuff is still be done in perl. Naturally that made ActiveMQ a front runner because of its open language support. Once he got wind of the talks it was quickly shelved with “over my dead body”.
Turns out that despite the great documentation and its visibility, it doesn’t work quite as speedy as one would think. After fixing several bugs himself (out of order messages being one that I recall), the one glaring problem is performance. Seems that if a subscriber is a bit slow, the whole server becomes slow even on the receiving end. Well, that is just counter productive in my book. The whole idea of a message system is to eliminate these kinds of bottlenecks yes?
We then tried openAMQ (a C-based server) and that shelved too because it kept dropping messages. For the time being we settled on Websphere MQ which just makes me want to puke. I know IBM has had a message server forever, but I have yet to see a piece of software they’ve written that was worth a shit.
Hopefully we can find another solution before big blue takes a firm hold on us. Any suggestions?
Any really good experiences with ActiveMQ?
Don't miss anything, subscribe!
Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically to your feed reader.
Comments
Ok, so I guess the ActiveMQ part is in the audio only which you can dig it out here: http://www.ustream.tv/recorded/395482 (7 minutes into). It has to do with performance, overal quality, and community responsiveness (lack thereof).
Yes, C and SOAP only at this point.
There are lots of people using ActiveMQ in production - it wouldn’t be so popular if that wasn’t the case.
There are lots of strategies for dealing with different use cases, slow consumers being just one of them. The ActiveMQ project is slightly damned by its own success - because we do have support so many usage scenarios. Perhaps, instead of spreading FUD - if your ‘guy’ had asked the really responsive user lists - we could have explained to him how easy it it to configure ActiveMQ to:
1. handle slow consumers
2. performance tune
3. Increase reliability
or any combination of the above by some very straight forward configuration ![]()
cheers,
Rob
We tried ActiveMQ for a project two years ago, but got burned by some bugs. After restarting one of the servers the message forwarding didn’t resume in some cases. Don’t know if that ever got solved, but I guess a lot has happened with ActiveMQ since then.
Also, the Topics implementation couldn’t deal with huge message backlogs at the time, but I think that’s supported in current versions.
Performance, i.e. throughput, seemed ok though.
We used activemq as part of ServiceMix ESB. ServiceMix 3.2.1 uses activemq 4.1. I can relate to the issues are you and/or your collegue is talking about with respect to activemq. There are some serious gotchas ( Internal memory - usageMemory lockup ), , synchronization issues ( client closing connections ) and HA ( Pure Master/Slave which is a joke in 4.1 as IT DOES NOT WORK. Their JIRA bug report shows that it is fixed is 5.x ) screw ups.
We can hardly have it up for a week.

OpenMQ (http://openmq.dev.java.net). It’s “Robust”.
But don’t take my word for it, look at Wotif.com’s story moving from ActiveMQ to OpenMQ: http://wiki.glassfish.java.net/PageInfo.jsp?page=GlassFishDay2008Sydney/OpenMQ.pdf