James Strachan wrote:
On 7/13/06, Peter Leonard <[EMAIL PROTECTED]> wrote:
Hi Everyone,
I've been researching ActiveMQ as a potential solution for a system I'm
working on, and I was hoping for a little feedback from the AMQ
community.
Is anyone out there using AMQ to support applications written in Perl?
I've found the Stomp/Perl client, but it's described as being of
Alpha-quality, and it doesn't seem like there's much in terms of
community or support specifically for it.
Assuming that the Perl API for Stomp is in need of some TLC (not an
insurmountable issue on my end), how is the general Stomp interface at
this point?
Stomp support is good; we've lots of clients so far and the protocol
has been well and trully hammered...
http://activemq.org/site/cross-language-clients.html
Though there are sometimes some gremlins with certain clients; but the
clients are generally simple enough to be easy to fix if you hit any
issues. (e.g. the perl client is quite small and pretty simple code to
fix if there's anything you need changing etc).
Sounds good - is there anyone out there using the Perl client that could
shed any light on the situation WRT Perl? I've perused the client
source, and it's extremely spartan - I'm sure it works, but it could
definitely use some polishing. :)
To confirm - all the Stomp clients are implementing what's documented here:
http://stomp.codehaus.org/Protocol
Is there anything beyond that doc? For example, failover (see further
commentary below).
I can see the desire to implement both failover & perhaps auto-discovery
in the Perl client (in addition, setting it up as an easily-installable
Perl module, like any other CPAN module). Are there other features in
the other Stomp clients that would be desireable in the Perl client?
(Some quick background - the system requirements would be approximately
500 messages/second over an HA environment, supporting message
persistance for potentially several hours, if possible. Early reading
with AMQ suggests that setting up a cluster would be the way to go).
Yeah - the perl would connect to a Master which could failover to a
Slave...
http://activemq.org/site/masterslave.html
the only thing that needs adding is the ability to failver in the Perl
client which I don't think is there yet.
Funny you should bring that up. :)
I'm a little confused with the AMQ docs with respect to MasterSlave
versus clustering versus other topologies.
Some of the docs talk about MasterSlave as the way to implement HA
setups, but then there are other docs talking about clustering brokers
to create a messaging fabric, which suggests a network of equals.
To add to the confusion, the website differentiates between "Broker
Clusters" and "Networks of Brokers", talking about them as two different
things, but yet the paragraphs describing the two terms seem somewhat alike:
http://incubator.apache.org/activemq/clustering.html
Some insight would be appreciated - perhaps the answer to this question
would be best -
If you had to set up AMQ to support 500 messages/second, in HA fashion,
with message persistance (so clients could retrieve old messages) and
you had a network of 10-15 machines that would run services interacting
with AMQ, how would you set it up?
Would you set up 2-3 dedicated boxes for AMQ brokers? Would you run AMQ
brokers on some or all of those servers (given that they have excess
capacity) instead?
I know that some of this is more of a philosophical battle, and I'm not
trying to start a holy war of any kind. I am personally a little
hesitant about the Master/Slave relationship, if only because I know it
from the RDBMS world, and I know the hell that can arise when a Master
DB blows up. If a messaging fabric makes that problem go away, I'm a
happy camper.
Thank you for your time,
Pete