Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

ActiveMQ supports Virtual Topics since durable topic subscriptions kinda suck (see this page for more detail) mostly since they don't support Competing Consumers.

Most folks want Queue semantics when consuming messages; so that you can support concurrent consumers Competing Consumers for load balancing along with things like Message Groups and Exclusive Consumers to preserve ordering or partition the queue across consumers.

...

First here's the ActiveMQ approach; you send to .

  • send to activemq:topic:VirtualTopic.Orders
  • for consumer A consume from activemq:Consumer.A.VirtualTopic.Orders

When using another message broker use the following pattern

  • send to jms:Orders
  • add this route with a to() for each logical durable topic subscriber
    Code Block
    from("jms:Orders").to("jms:Consumer.A", "jms:Consumer.B", ...); 
  • for consumer A consume from jms:Consumer.A