搜索

第 17 章 桥接代理

download PDF

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

可用的网桥如下:

Core
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.