Apache Camel异步两种方式的消息传递

时间:2018-07-09 08:41:39

标签: java apache-camel enterprise-integration

经过长时间的研究,我仍然没有可以接受的解决方案。

打算: 我正在尝试使用多个端点/组件来生成具有专有内容的交换。 (图片中的第一行第一列

因此,应该使用规范化器/转换器对交换进行规范化(图片中的第一行第二列

最后,应处理此归一化数据。 (保存到数据库,进行了一些汇总,计算了一些结果)。

生成结果后,应生成一个全新的交换并将其填充到路由中,此处理器位于“ from”语句中。 (第二行)->数据应转换为专有数据->发送至端点

问题和初步发现

  • 不能直接在“ from”语句中找到处理器。一世 仅以“来自”的方式找到了一些解决方法 (direct:somemessages)”由处理器在处理器中创建 to(direct:somemessages)

  • 处理器可以是带有端点的组件程序。 异步消息可以与 相应的消费者

路线进入示例(第一行

  <route id="bar">
        <from uri="mqtt"/>
        <to uri="TranslateMQTT2MyModel"/>
        <to uri="ProcessData"/>
    </route>

示例路由出站(我想要)(第二行

  <route id="out">
        <from uri="ProcessData"/>
        <to uri="TranslateMyModel2MQTT"/>
        <to uri="mqtt"/>
    </route>

那么我如何实现自己的目标?我的两个结果之一是好的解决方案吗?

Example of schematic workflow

1 个答案:

答案 0 :(得分:0)

您可以编写一个使用方的“ ProcessData”组件,但我认为您不需要这样做。

我认为您可以使用SEDA组件的异步功能,所以我想寻找的是这样的东西:

tolist

SEDA组件的工作方式与您所描述的直接类似,但是直接是同步的,而SEDA是异步的。 (如果需要在具有相同JVM的Camel上下文之间进行链接,请注意VM和Direct-VM组件。)