I recommend using Queues, since Durable Subscriptions can't scale on the
consumer side (JMS spec only allows for one connection per subscriptionId).
Another option would be to use a Camel route to help filter the messages
based on your selector, so you only get messages into queues as needed.
This would help cut down on the wasted messages problem. Also, if you
run the Camel route in the same Java VM as ActiveMQ, you can use
ActiveMQ's vm:// transport for super fast processing by the Camel route.
Producer -> General.Q -> Camel route (content based router) -> QueueA,
QueueB, QueueC
ActiveMQ does have another feature called Virtual Destinations, but I
don't recommend using them, except in certain situations, and this isn't
one of them. The advantage of the Camel route is that you can
start/stop it without having to start/stop the broker, as well as having
more flexibility available to you in the routing rules.
Hope this helps!
Matt Pavlovich
On 2/13/12 6:58 AM, Hervé BARRAULT wrote:
Hi,
is there no advice to send a message to multiple consumers using activeMQ ?
Regards
Hervé
On 2/2/12, Hervé BARRAULT<herve.barra...@gmail.com> wrote:
Hi,
I would multicast messages to different (dynamically determined) consumers.
I'm asking myself if it is more efficient to use multiple queues or use a
topic with durable subscription and selectors (I am using persistence).
I would say topics reduce the number of persisted messages but i am afraid
that one consumer can influence other consumers (if some clients are slower
than other).
I have already seen that topic could have some problems in case of failover
with the subscriptions.
What is the best way to accomplish this behavior ?
Regards
Hervé