Hi,

I have an embedded Camel client that contains a single route. All messages
the route consumes have their JMSXGroupID property set.

What I need to know is how message grouping behaves in the context of
concurrent consumers and how does the choice of the prefetch buffer size
come into play (when not using the default)?

Say I have route that looks like:

from("activemq:some_queue?concurrentConsumers=5&maxConcurrentConsumers=5&destination.consumer.prefetchSize=5")
  .bean(new SomeBean());

- Is it guaranteed that a given message group will always be handled by the
same consumer thread?

- Is the prefetch size applied at the consumer thread level or to the
single underlying connection that they're all sharing?

- If the prefetch size is applied at the connection level, is it correct to
assume that its value must be >= the number of concurrent consumers to
avoid leaving threads idle when there are messages available to be
processed, example: when consumer.prefetchSize=1?

Yes, I have read this page:
https://camel.apache.org/parallel-processing-and-ordering.html but it
didn't answer my questions.

Thanks,
Paul

Reply via email to