Hi,

We would like to throttle the number of messages at any point of time to 20
from Active MQ.
Few other constraints are:
a) Total number of messages received by all consumers should be maximum of
20
b) Some of them might be slow consumers.  Let us say 5 of them are still
processing,
then MQ should send only 20 - 5 = 15 messages to remaining consumers

Initial approach:
We would like producers to post messages to a (distributed) Topic, use Camel
framework 
to forward the message to corresponding Active MQ Queue based on a Header
parameter.

Problem:
a) The Camel throttler by default, on second zero, throttles 20 messages
from Topic
and all of them reach their Queues for Consumers to use  
b) At second 1, the Camel throttler forwards another 20 messages from Topic 
and all of them reach their Queues by doubling the messages in the Queue

Is there a way (without setting delay) in Camel Throttler to dispatch only N
number of messages based on destination Queue count?

Note:
I had the queuePrefetch (to true), producerFlowControl (to true) in Active
MQ XML for all the Queues.
But none of the Queues are blocking new messages; they accept the messages
forwarded by Camel plugin.

Are there any parameters available in Active MQ or Camel to restrict message
limits based on consumption?

thank you,

Ananth Krishnan



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Message-throttling-problem-tp4684744.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to