2

我真的看不出多播路由器和静态收件人列表路由器之间的区别。为什么我要使用其中一个?

根据Mule-2.x 用户指南

收件人名单

收件人列表路由器可用于通过同一端点向多个端点发送相同的事件,或实现路由滑动行为,其中事件的下一个目的地由事件属性或有效负载确定。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>

请记住,应注意确保将被路由的消息转换为端点可以理解的格式。

4

2 回答 2

3

直接从马的嘴里(骡子在行动,David Dossot,John D'Emic,第 98..100 页)

static-recipient-list 路由器允许您同时将相同的消息发送到多个端点。当每个端点使用相同的传输时,您通常会使用静态收件人列表。这通常是 VM 和 JMS 端点的情况。

使用相同的传输向端点发送相同的消息时使用静态收件人列表

多播路由器类似于静态收件人列表,因为它同时通过一组出站端点发送相同的消息。不同之处在于,当端点列表包含不同类型的传输时,使用多播路由器。

使用不同的传输向端点发送相同的消息时使用多播路由器

于 2010-09-20T22:16:04.430 回答
0

这就是我对这些的理解:

static-recipient-list 路由器将按照列出的顺序将有效负载发送给每个接收者。这使您能够在继续下一个端点之前修改有效负载。这也使您能够在发生错误时停止处理。

多播路由器同时向所有端点发送相同的有效负载。您将无法更改每个端点的有效负载。如果端点之一失败,您将无法阻止其他端点处理。

于 2010-09-07T17:27:16.290 回答