Using multipleConsumers - 6.3

Talend ESB Mediation Developer Guide

Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Design and Development
Talend ESB

In this example we have defined two consumers and registered them as spring beans.

<!-- define the consumers as spring beans -->
<bean id="consumer1" class="org.apache.camel.spring.example.FooEventConsumer"/>
<bean id="consumer2" 
<camelContext xmlns="">
    <!-- define a shared endpoint which the consumers can refer to instead of 
    using url -->
    <endpoint id="foo" uri="disruptor:foo?multipleConsumers=true"/>

Since we have specified multipleConsumers=true on the Disruptor foo endpoint we can have those two or more consumers receive their own copy of the message as a kind of pub-sub style messaging. As the beans are part of an unit test they simply send the message to a mock endpoint, but notice how we can use @Consume to consume from the Disruptor.

public class FooEventConsumer {
    @EndpointInject(uri = "mock:result")
    private ProducerTemplate destination;
    @Consume(ref = "foo")
    public void doSomething(String body) {
        destination.sendBody("foo" + body);