activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From G1 <>
Subject Horizontally scaling JMS listener/consumer Active MQ environment
Date Sun, 20 Sep 2009 16:47:44 GMT


In the enterprise we use Active MQ, v5.3 for the messaging infrastructure. 

I am integrating 2 applications. 

Appl-P ...producer, publishes jms messages on a topic ::

And I have Appl-C...the consumer consuming the same (by directly listening
on the topic :: VirtualTopic.Appl-P.SomeName 

In an attempt to horizontally scale Appl-C; 

I hosted Appl-C on more than 1 machine and changed it to consume off queue's
created from the Virtual Topic; 

Consumer.Instance-B.VirtualTopic.Appl-P.SomeName and so forth 

But Active-MQ delivers the same message to all the Consumer.Queue's (albeit
within a short delay of each other) 

and thus the multiple instances of Appl-C attempt procesing the same message
more than once (which is not desired) 

I thought off keeping the multiple instances of Appl-C reading off the topic
(VirtualTopic.Appl-P.SomeName) directly; 
(instead of the individual Consumer.Queue's) 
but I do not think that will gaurantee that only one instance of Appl-C will
process (and others ignore) 

Any suggestions on how to horizontally scale the consumer, Appl-C 
ensuring Active-MQ does not deliver the same message to only one instance (@
a time) 

Would it be possible to achieve this, exclusively within the Active-MQ
broker? (using features of ver 5.3) 
(I do not wish to develop any load balancer component, to intercept
messages, before they are delivered to Appl-C) 


PS: Appl-C .... does not use any database (so there is no way to share data
or state between the multiple instances of Appl-C 

View this message in context:
Sent from the ActiveMQ - Dev mailing list archive at

View raw message