Introduction
In this chapter, we will take a deeper look at using Camel's support for increasing throughput inside a single JVM by processing exchanges in parallel.
So far we have seen parallel processing mentioned in the context of a number of EIPs including Multicast, Splitter, and Aggregator. This chapter will introduce you to the ability to easily define processing phases in an ad hoc manner, in order to scale out your integrations as required.
Parallel processing is a useful tool as it allows you to do more work in a shorter space of time by distributing work across a set of worker threads.
Imagine that you have 100 messages, each requiring 0.1 seconds to execute. Using only one thread, this load should be processed in about 10 seconds. However, if you get 10 threads to work on this batch of messages, you might reasonably expect to process it in 1 second. That is the promise of parallelism.
Parallelism is not a silver bullet for performance problems. It will not scale infinitely...