【问题标题】:apache camel multicast - performing aggregation in async mannerapache camel multicast - 以异步方式执行聚合
【发布时间】:2014-05-29 21:07:47
【问题描述】:

假设如果我有一个路由,可以将输入多播到多个处理器。

目前的行为:

控制台等待来自System.in流的一些输入,一旦给出一些输入,多播就完成了,但主线程等待直到聚合完成。

预期行为:

我想要实现的是主线程不应该等待聚合完成而是应该返回并且主线程应该开始监听来自控制台的新输入,因为路由是 InOnly 类型并且不应该产生任何输出。

我尝试在路由中使用parallelProcessing="true"setExchangePattern pattern="InOnly" 来影响行为,但多播处理器总是等待聚合任务完成,然后主线程才会从控制台获取其他输入。

<route>
      <from uri="stream:in?promptMessage=Enter something: "/>
      <setExchangePattern pattern="InOnly"/>
      <multicast parallelProcessing="true">
        <pipeline>
            <transform>
                <simple>${body.toUpperCase()}</simple>
            </transform>
            <!-- and then print to the console -->
            <to uri="stream:out"/>  
        </pipeline>
        <to uri="stream:out"/>
      </multicast>
</route>

这可以通过多播实现还是有其他方法可以实现?

【问题讨论】:

    标签: java apache-camel multicast


    【解决方案1】:

    看看 Apache Camel 提供的其他 EIP。我们的想法不是使用单个 uber EIP,而是每个都提供不同的功能,并且您可以将它们一起使用来构建您的集成解决方案。

    例如,您可以查看wire tap,它允许独立于原始消息路由复制消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      相关资源
      最近更新 更多