The document discusses different types of routers and splitters in Mule flows. It explains that splitters split messages to be processed in parallel, then aggregated. It provides examples of a collection splitter splitting a list object, with each item routed to another flow and resequenced before aggregation. A message chunk splitter chunks a message into fixed-size segments, routing each to another flow before aggregation. Scatter-gather is also described as sending a message to multiple endpoints concurrently and aggregating the responses.
2. Routing
The Routing module reviews the different types of Routers and how
Routers are used to control how messages are sent and received by
components. The message can be route in different ways. Below are
explained in this example.
• Splitters and Aggregators
• Collection splitter and Collection Aggregator
• Message chunk splitter and Message chunk aggregator
• Scatter gather
• For each
• Mule flows, Sub flows and flow reference
• Filters
3. Splitters
Splitters are used to split the message and process split messages
in parallel. After processing completed, those messages get
aggregate by aggregator components. Below is the splitters main
flow diagram.
Below flow exposes a HTTP service to implement collection splitter
and message chunk splitter. This flow expects a query parameter
‘splitter’.
If ‘splitter’ parameter value is ‘collection’ then choice router routes the
flow to collection splitter or if the value is ‘chunk’ then it routes to
message chunk splitter implementation.
4.
5. Collection splitter and Collection Aggregator:
Collection splitter is used to split collection object and process split
messages individually. Collection splitter expects a collection object
as a payload. A java component has been used to create a List
object. Each object of List is routed to another flow via VM queue in
one-way mode.
6. In the above flow after logger component (which logs payload) we
have two important message processors.
1. Resequencer
2. Collection Aggregator.
While elements of List are processing invidually, the elements may
get change their order. Resequencer is used to reorder the elements
of List object. Collection Aggregator is used to aggregate the
processed invidual message payload.
7. Message chunk splitter and Message chunk
Aggregator:
We need to provide some message payload to split the message.
Message chunk splitter is used to chunk a message into a number of
fixed-length messages based on the Message Size.
8. This splitter first convert the message into byte array then split this array
into chunks. Each chunked message is routed to another flow via VM
queue in one-way mode.
Message Chunk Aggregator is used to aggregate the chunked
messages. Byte Array to String component needs to co
9. Scatter Gather:
Scatter Gather is used to send a message to multiple endpoints
concurrently. It collects the response of all the routes and aggregate
into a single message.