MulticastPage edited by Claus IbsenMulticastThe Multicast allows to route the same message to a number of endpoints and process them in a different way. The main difference between the Multicast and Splitter is that Splitter will split the message into several pieces but the Multicast will not modify the request message. ExampleThe following example shows how to take a request from the direct:a endpoint , then multicast these request to direct:x, direct:y, direct:z. Using the Fluent Builders
from("direct:a").multicast().to("direct:x", "direct:y", "direct:z");
If you want to aggregate the whatever the incoming messages or outgoing messages within the multicast, here is an example Using the Fluent Builders
// The message will be sent parallelly to the endpoints
from("direct:parallel")
.multicast(new BodyOutAggregatingStrategy(), true).executorService(tpExecutor)
.to("direct:x", "direct:y", "direct:z");
// Multicast the message in a sequential way
from("direct:sequential").multicast(new BodyOutAggregatingStrategy()).to("direct:x", "direct:y", "direct:z");
from("direct:x").process(new AppendingProcessor("x")).to("direct:aggregator");
from("direct:y").process(new AppendingProcessor("y")).to("direct:aggregator");
from("direct:z").process(new AppendingProcessor("z")).to("direct:aggregator");
from("direct:aggregator").aggregate(header("cheese"), new BodyInAggregatingStrategy()).
completionPredicate(property(Exchange.AGGREGATED_SIZE).isEqualTo(3)).to("mock:result");
For further examples of this pattern in use you could look at one of the junit test case Using This PatternIf you would like to use this EIP Pattern then please read the Getting Started, you may also find the Architecture useful particularly the description of Endpoint and URIs. Then you could try out some of the Examples first before trying this pattern out.
Change Notification Preferences
View Online
|
View Change
|
Add Comment
|
- [CONF] Apache Camel > Multicast confluence
- [CONF] Apache Camel > Multicast confluence