THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- SEDA for in-JVM load balancing across a thread pool]
- ActiveMQ or JMS for distributed load balancing and parallel processing
- JPA for using the database as a poor mans message broker
...
- for distributed locking, use a database by default, they are very good at it
- to preserve ordering across a JMS queue consider using Exclusive Consumers in the ActiveMQ component
- even better are Message Groups which allows you to preserve ordering across messages while still offering parallelisation via the JMSXGrouopID JMSXGroupID header to determine what can be parallelized
- if you receive messages out of order you could use the Resequencer to put them back together again
...
For example the following code shows how to create a message group using an XPath expression taking an invoice's product code as the Correlation Identifier
Code Block |
---|
from("activemq:a").setHeader("JMSXGroupID"JmsConstants.JMS_X_GROUP_ID, xpath("/invoice/productCode")).to("activemq:b"); |
...