12.2. 配置消息片段
要在代理实例中配置,请在 broker.xml
配置文件的 核心元素
中添加 divert
元素。
<core> ... <divert name= > <address> </address> <forwarding-address> </forwarding-address> <filter string= > <routing-type> </routing-type> <exclusive> </exclusive> </divert> ... </core>
- divert
-
划分的命名实例.您可以向
broker.xml
配置文件添加多个divert
元素,只要每个竞争者都有唯一的名称。 - address
- 从中分离 信息的地址
- forwarding-address
- 信息转发到的地址
- filter
- 可选的消息过滤器。如果您配置过滤器,则只会显示与过滤器字符串匹配的消息。如果您没有指定过滤器,则整个消息都将被视为匹配。
- routing-type
正在推断的消息的路由类型。您可以将竞争配置为:
-
将任何
广播
或多播路由
类型应用到消息 - 条带 (即,删除)现有路由类型
- 传递 (即保留)现有路由类型
-
将任何
当消息已设置其路由类型时,路由类型的控制很有用,但您想将消息重新定向到使用不同的路由类型的地址。例如,代理无法将 anycast
路由类型的消息路由到一个使用 multicast
的队列,除非您将 divert 的 routing-type
参数设置为 MULTICAST
。导航器的 routing-type
参数有效值为 ANYCAST
、MULTICAST
、PASS
、STRIP
。默认值为 STRIP
。
- exclusive
-
指定parrt 是否排斥(将属性设置为
true
)还是非独占(将属性设置为false
)。
以下小节显示了独占和非排除分制的配置示例。
12.2.1. 独占竞争示例
下面是一个排斥的示例配置。独占的分点将最初配置的地址中的所有匹配消息重定向到新地址。匹配的消息不会路由到原始地址。
<divert name="prices-divert"> <address>priceUpdates</address> <forwarding-address>priceForwarding</forwarding-address> <filter string="office='New York'"/> <exclusive>true</exclusive> </divert>
在前面的示例中,您定义了一个名为 price-divert
的 divert,它将发送到 priceUpdates
地址的任何消息转到另外一个本地地址 priceForwarding
。您还指定了消息过滤器字符串。只有消息属性 office
和值 New York
的消息才会被推断。所有其他消息都路由到其原始地址。最后,您指定了分路是独占的。
12.2.2. Non-exclusive divert 示例
下面是一个非区别的示例配置。在非专用的竞争中,信息将继续进入其原始地址,而代理也会将消息的副本发送到指定的转发地址。因此,非破坏性的划分方式是分割消息流的方法。
<divert name="order-divert"> <address>orders</address> <forwarding-address>spyTopic</forwarding-address> <exclusive>false</exclusive> </divert>
在前面的示例中,您可以定义名为 order-divert
的分值,该片段获取发送到地址 订购
的每个消息的副本并将其发送到名为 spyTopic
的本地地址。您还指定了不明确推销。
其他资源
如需详细示例,它使用 exclusive 和 non-clusive 分离和网桥将消息转发到另一个代理,请参阅 Divert Example (外部)。