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