我们可以在 apache camel 中使用多个多路广播吗?
Can we use multiple mutlicast in apache camel?
我有一个要求,我想在 Apache Camel 中使用 multlicast 而不是在单个路由中使用一次。即多播中的多播。
<routeContext id="myRoute" xmlns="http://camel.apache.org/schema/spring">
<route id="myRouteId">
<from uri="activemq:queue:{{XXXX.queue}}" />
....
<multicast parallelProcessing="true">
<pipeline>
##everything working fine here
</pipeline>
<pipeline>
<multicast>
<pipeline>
<log message="Inserting in database now"></log>
<transform>
<method ref="insertBean" method="myBatchInsertion"></method>
</transform>
<choice>
<when>
<simple>${in.header.myCount} == ${properties:batch.size} </simple>
<to uri="sql:{{sql.core.insertMyQuery}}?batch=true"></to>
<log message="Inserted rows ${body}"></log>
</when>
</choice>
</pipeline>
</multicast>
</pipeline>
</multicast>
</route>
</routeContext>
可以吗?
当我尝试这样做时,我的程序没有成功执行。
执行不成功是多重多播的结果吗?
有人可以帮忙吗?
我从以下 link 获得参考:
http://camel.apache.org/multicast.html
为什么要使用管道?它默认 "is" 管道。
所有日志和转换和选择语句也可以放在多播之外。由于您是动态生成端点的,因此将值放在 header 中,并将收件人列表用于动态端点。多播用于 hard-coded 个端点。这是一个例子:
<route>
<from uri="direct:a" />
<!-- use comma as a delimiter for String based values -->
<recipientList delimiter=",">
<header>myHeader</header>
</recipientList>
</route>
我有一个要求,我想在 Apache Camel 中使用 multlicast 而不是在单个路由中使用一次。即多播中的多播。
<routeContext id="myRoute" xmlns="http://camel.apache.org/schema/spring">
<route id="myRouteId">
<from uri="activemq:queue:{{XXXX.queue}}" />
....
<multicast parallelProcessing="true">
<pipeline>
##everything working fine here
</pipeline>
<pipeline>
<multicast>
<pipeline>
<log message="Inserting in database now"></log>
<transform>
<method ref="insertBean" method="myBatchInsertion"></method>
</transform>
<choice>
<when>
<simple>${in.header.myCount} == ${properties:batch.size} </simple>
<to uri="sql:{{sql.core.insertMyQuery}}?batch=true"></to>
<log message="Inserted rows ${body}"></log>
</when>
</choice>
</pipeline>
</multicast>
</pipeline>
</multicast>
</route>
</routeContext>
可以吗? 当我尝试这样做时,我的程序没有成功执行。 执行不成功是多重多播的结果吗? 有人可以帮忙吗? 我从以下 link 获得参考: http://camel.apache.org/multicast.html
为什么要使用管道?它默认 "is" 管道。
所有日志和转换和选择语句也可以放在多播之外。由于您是动态生成端点的,因此将值放在 header 中,并将收件人列表用于动态端点。多播用于 hard-coded 个端点。这是一个例子:
<route>
<from uri="direct:a" />
<!-- use comma as a delimiter for String based values -->
<recipientList delimiter=",">
<header>myHeader</header>
</recipientList>
</route>