我真的看不出多播路由器和静态收件人列表路由器之间的区别。为什么我要使用其中一个?
收件人名单
收件人列表路由器可用于通过同一端点向多个端点发送相同的事件,或实现路由滑动行为,其中事件的下一个目的地由事件属性或有效负载确定。Mule 提供了一个抽象的收件人列表实现 org.mule.routing.outbound.AbstractRecipientList,它为专门的实现提供了一个线程安全的基础。Mule 还提供了一个静态收件人列表,该列表从当前事件中获取已配置的端点列表或在端点上静态声明。
<outbound>
<static-recipient-list-router>
<payload-type-filter expectedType="javax.jms.Message"/>
<recipients>
<spring:value="jms://orders.queue"/>
<spring:value="jms://tracking.queue"/>
</recipients>
</static-recipient-list-router> </outbound>
组播路由器
多播路由器可用于通过多个端点发送相同的事件。使用此路由器时,必须注意在端点上配置正确的转换器以处理事件源类型。
<outbound>
<multicasting-router>
<jms:endpoint queue="test.queue"
transformer-refs="StringToJmsMessage"/>
<http:endpoint host="10.192.111.11"
transformer-refs="StringToHttpClientRequest"/>
<tcp:endpoint host="10.192.111.12"
transformer-refs="StringToByteArray"/>
<payload-type-filter expectedType="java.lang.String"/>
</multicasting-router> </outbound>
请记住,应注意确保将被路由的消息转换为端点可以理解的格式。