【发布时间】:2020-07-31 02:25:59
【问题描述】:
是否有可能将被转移的邮件的地址作为另一个地址的来源?如果这是可能的,新的目标地址是否可以具有与源不同的路由类型,换句话说,我的新源地址是多播,新目标是任播,如果我理解正确,则在地址之间转移从我在这里读到的内容,不同的路由类型是不可能的。
转移可以将特定的路由类型应用于消息,剥离现有的路由类型,或者简单地传递现有的路由类型。这在消息可能已设置其路由类型但您希望将其转移到使用不同路由类型的地址的情况下很有用。请务必记住,具有任播路由类型的消息实际上不会使用多播路由到队列,反之亦然
我尝试配置的设置如下所示
<addresses>
<address name="source.A">
<multicast>
<queue name="source.A"/>
</multicast>
</address>
<address name="source.B">
<multicast>
<queue name="source.B"/>
</multicast>
</address>
<address name="destination.AB">
<multicast>
<queue name="destination.AB"/>
</multicast>
</address>
<address name="destination.C">
<anycast>
<queue name="destination.C"/>
</anycast>
</address>
</addresses>
<diverts>
<divert name="divert-A">
<routing-name>divert-A</routing-name>
<address>source.A</address>
<forwarding-address>destination.AB</forwarding-address>
<exclusive>true</exclusive>
</divert>
<divert name="divert-B">
<routing-name>divert-B</routing-name>
<address>source-B</address>
<forwarding-address>destination.AB</forwarding-address>
<exclusive>true</exclusive>
</divert>
<divert name="divert-AB">
<routing-name>divert-AB</routing-name>
<address>destination.AB</address>
<forwarding-address>destination.C</forwarding-address>
<exclusive>false</exclusive>
</divert>
</diverts>
【问题讨论】:
-
所以你真正想做的是将
MULTICAST路由类型的消息发送到source.A,然后将其转移到仅支持ANYCAST的destination.AB和@ 相同987654326@? -
source.A和source.B都收到MULTICAST路由类型的消息。即使destination.AB只支持MULTICAST路由类型。现在我想介绍destination.C,它只支持ANYCAST路由类型,并从destination.AB获取消息。这有意义吗?
标签: activemq-artemis