消息分配器

时间:2014-04-02 09:42:29

标签: mule esb

我需要将消息拆分为3个不同的有效负载并转换并发送到3个路由器。因此,有效载荷最初将具有主体或细节的标题和页脚。需要提取这3种不同的有效载荷并发送到3个不同的路由器。什么是最有效的方法。

1 个答案:

答案 0 :(得分:1)

这取决于您的身体/有效负载类型。如果您的有效负载是XML,则可以使用xpath轻松拆分它,并使用类似于以下内容的路由进行路由:

<splitter expression="#[xpath('//nodes/node)']" />
        <choice>
            <when expression="#[xpath('//node/id').text ='myid']">
                <!-- Route somewhere -->
            </when>
            <otherwise>
                <!-- Route somewhere else -->
            </otherwise>
        </choice>

上面的表达式拆分器可以使用任何MEL表达式来拆分有效负载。还有许多其他拆分器,例如,如果您的有效负载已经是java集合,您只需使用集合拆分器

其他拆分器信息可在此处找到:http://www.mulesoft.org/documentation-3.2/display/32X/Message+Splitting+and+Aggregation

如果您还需要异步处理消息,还有其他路由器可以帮助您使用fork和join模式。这是一篇很好的帖子:http://java.dzone.com/articles/aggregation-mule-%E2%80%93-%E2%80%9Cfork-and