第 17 章 桥接代理


网桥提供了一种连接两个代理的方法,将消息从一个代理转发到另一个代理。

可用的网桥如下:

Core
提供了一个示例,它演示了一个代理上部署的核心网桥,该网桥消耗来自本地队列的消息并将其转发到第二个代理上的地址。请参阅位于代理安装的 < install_dir&gt; /examples/features/standard/ 目录中的 core-bridge 示例。
mirror
请查看 第 16 章 使用代理连接配置多站点、容错的消息传递系统
发件人和接收器
请查看 第 17.1 节 “代理连接的发件人和接收器配置”
peer
请查看 第 17.2 节 “代理连接的对等配置”
注意

Core 网桥的 broker.xml 元素是 网桥。其他桥接技术使用 < broker-connection> 元素。

17.1. 代理连接的发件人和接收器配置

通过在 broker.xml 的 < broker-connections > 部分创建发件人或接收器代理连接元素,可以将代理连接到另一个代理。

对于 发件人,代理在将消息发送到另一个代理的队列上创建一个消息消费者。

对于 接收器,代理在从另一个代理接收消息的地址上创建一个消息制作者。

两个元素都作为消息网桥运行。但是,处理信息不需要额外的开销。发件人和接收器的行为与代理中的任何其他消费者或制作者相同。

特定队列可以通过发送方或接收器配置。通配符表达式可用于将发件人和接收器匹配到特定地址 或一组 地址。在配置发送方或接收器时,可以设置以下属性:

  • address-match :使用通配符表达式将发件人或接收器与特定地址 或一组 地址匹配。
  • queue-name :配置特定队列的发件人或接收器。
  • 使用地址表达式:

    <broker-connections>
      <amqp-connection uri="tcp://HOST:PORT" name="other-server">
        <sender address-match="queues.#"/>
        <!-- notice the local queues for remotequeues.# need to be created on this broker -->
        <receiver address-match="remotequeues.#"/>
      </amqp-connection>
    </broker-connections>
    
    <addresses>
      <address name="remotequeues.A">
        <anycast>
          <queue name="remoteQueueA"/>
        </anycast>
      </address>
      <address name="queues.B">
        <anycast>
          <queue name="localQueueB"/>
        </anycast>
      </address>
    </addresses>
  • 使用队列名称:

    <broker-connections>
      <amqp-connection uri="tcp://HOST:PORT" name="other-server">
        <receiver queue-name="remoteQueueA"/>
        <sender queue-name="localQueueB"/>
      </amqp-connection>
    </broker-connections>
    
    <addresses>
       <address name="remotequeues.A">
         <anycast>
           <queue name="remoteQueueA"/>
         </anycast>
       </address>
       <address name="queues.B">
         <anycast>
           <queue name="localQueueB"/>
         </anycast>
       </address>
    </addresses>
注意

Receivers 只能与已存在的本地队列匹配。因此,如果使用接收器,请确保队列在本地被预先创建。否则,代理无法与远程队列和地址匹配。

注意

不要创建具有相同目的地的发件人和接收器,因为这会产生一个无限循环来发送和接收。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.