我真的看不到多播路由器和静态接收者列表路由器之间的区别。为什么我会使用一个而不是另一个?
收件人列表
可以使用收件人列表路由器 将同一事件发送到多个 端点在同一端点或端点 实现路由滑动行为在哪里 该活动的下一个目的地是 根据事件属性确定 或有效载荷。骡子提供了一个摘要 收件人列表实现 org.mule.routing.outbound.AbstractRecipientList 它提供了一个线程安全的基础 专业实施。骡子也 提供静态收件人列表 获取已配置的端点列表 从当前事件或静态 在端点上声明。
<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>
请记住,应该注意 确保邮件被路由 转换为格式 终点了解。
答案 0 :(得分:3)
直接从马的嘴里(Mule in Action,David Dossot,John D'Emic,p.98..100)
static-recipient-list路由器允许您同时向多个端点发送相同的消息。当每个端点使用相同的传输时,您通常会使用静态收件人列表。 VM和JMS端点通常就是这种情况。
使用相同的传输将相同的消息发送到端点时使用静态收件人列表
多播路由器类似于静态收件人列表,因为它同时在一组出站端点上发送相同的消息。不同之处在于,当端点列表包含不同类型的传输时,将使用多播路由器。
使用不同的传输方式向端点发送相同的消息时使用多播路由器
答案 1 :(得分:0)
这就是我理解这些:
static-recipient-list路由器将按照列出的顺序将有效负载发送给每个收件人。这使您能够在继续下一个端点之前修改有效负载。这也使您能够在发生错误时停止处理。
多播路由器同时向所有端点发送相同的有效负载。您将无法更改每个端点的有效负载。如果其中一个端点发生故障,您将无法阻止其他端点处理。