2017-01-03 109 views

回答

1

您可以使用虚拟机组件跨CamelContext实例发送交流。 http://camel.apache.org/vm.html

+1

或直接-VM,因为骆驼2.10的http://骆驼.apache.org/direct-vm.html只有一个特定的事情:如果您在Camel中使用POJO负载 - 那些POJO类必须由相同的ClassLoader加载 – Vadim

0

创建与vm:endpoint共享消耗(来自)的路由,并使用相同的端点名称从其他路由引用它。

  1. 拆分出来,你想分享到的路线,并选择一个虚拟机组件从消耗集成逻辑。

如果您的路由应该使用与调用方相同的线程处理请求,请选择direct-vm :,否则,如果您希望交换由不同线程异步处理,请选择vm :. 为端点提供一个在整个JVM中唯一的名称。

在XML DSL,这是写如下:

<route> 
<from uri="vm:logMessageToBackendSystem"/> <to uri="..."/> 
</route> 

在Java DSL,你表达了同样的事情:

from("vm:logMessageToBackendSystem").to(...); 
  • 通过使用相同的URI前缀,从需要使用此逻辑的顶级路由中调用共享路由。
  • 在XML DSL,写:

    <route> 
        <from uri="..."/> 
        <to uri="vm:logMessageToBackendSystem"/> 
    </route> 
    

    在Java DSL,这被写成:

    from(...).to("vm:logMessageToBackendSystem");