搜索

12.2. 配置消息 diverts

download PDF

要在代理实例中配置一个 divert,在 broker.xml 配置文件的 core 元素中添加一个 divert 元素。

<core>
...
   <divert name= >
        <address> </address>
        <forwarding-address> </forwarding-address>
        <filter string= >
        <routing-type> </routing-type>
        <exclusive> </exclusive>
   </divert>
...
</core>
divert
分离的命名实例。您可以在 broker.xml 配置文件中添加多个 divert 元素,只要每个 divert 都有唯一的名称。
address
从中分离 消息的地址
forward-address
信息转发的地址
filter
可选消息过滤器。如果您配置过滤器,则只有与过滤器字符串匹配的消息才会被分离。如果没有指定过滤器,则 divert 认为所有消息都被视为匹配项。
routing-type

划分消息的路由类型。您可以将 divert 配置为:

  • anycastmulticast 路由类型应用到消息
  • 去除 (即删除)现有路由类型
  • 传递 (即保留)现有路由类型

当消息设置了路由类型时,路由类型的控制很有用,但您想要将消息定向到使用不同路由类型的地址。例如,代理无法将 anycast 路由类型的消息路由到一个使用 multicast 的队列,除非您将 divert 的 routing-type 参数设置为 MULTICAST。divert 的 routing-type 参数的有效值为 ANYCASTMULTICASTPASSSTRIP。默认值为 STRIP

exclusive
指定 divert 是 exclusive (将属性设为 true)还是非专用(将属性设为 false)。

以下小节展示了 exclusive 和 non-exclusive diverts 的配置示例。

12.2.1. 排除 divert 示例

下面是一个排除 divert 的示例配置。排除 divert 将原始配置的地址的所有匹配消息复制到新地址。匹配消息不会路由到原始地址。

<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 的消息才会被 divert。所有其他消息都会路由到其原始地址。最后,您可以指定 divert 是 exclusive。

12.2.2. Non-exclusive divert 示例

下面是一个非排除的 divert 的示例配置。在非独占 divert 中,消息将继续进入其原始地址,而代理还会将消息副本发送到指定的转发地址。因此,非独占 divert 是一个分割消息流的方法。

<divert name="order-divert">
   <address>orders</address>
   <forwarding-address>spyTopic</forwarding-address>
   <exclusive>false</exclusive>
</divert>

在上例中,您定义了一个名为 order-divert 的 divert,它会获取发送到地址 orders 的每个消息的副本,并将其发送到名为 spyTopic 的本地地址。您还可以指定 divert 不是排他的。

其他资源

有关使用 exclusive 和 non-exclusive diverts 的详细示例,以及一个桥接将消息转发到另一个代理,请参阅 divert 示例 (外部)。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.