m子:多播 - 路由器和静态播放列表路由器有什么区别?
题
我真的看不到多播 - 途径和静态播放列表路由器之间的区别。我为什么要使用一个?
根据 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>
请记住,应注意确保将路由的消息转换为端点所理解的格式。
解决方案
直接从马的嘴里(a ule在行动中, ,戴维·多索特(David Dossot),约翰·埃米克(John D'Emic),p。 98..100)
静态播客路由器可让您同时向多个端点发送相同的消息。通常,当每个端点都使用相同的传输时,您通常会使用静态收件人列表。 VM和JMS端点通常是这种情况。
使用相同的传输将相同的消息发送到端点时,请使用静态收件人列表
多播路由器类似于静态收件人列表,因为它同时在一组出站端点上发送了相同的消息。区别在于,当端点列表包含不同类型的传输类型时,使用多播路由器。
当使用不同的传输发送相同的消息向端点发送相同的消息时,请使用多播路由器
其他提示
这就是我理解这些的方式:
静态录音列表路由器将以列出的顺序将有效载荷发送给每个收件人。这使您能够在进行下一个端点之前修改有效载荷。这也使您能够在发生错误时停止处理。
多播路由器同时将相同的有效载荷发送到所有端点。您将无法更改每个端点的有效负载。如果其中一个端点失败,您将无法阻止其他端点处理。