第 17 章 桥接代理


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

可用的网桥如下:

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

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

17.1. 代理连接的发送者和接收器配置

通过在 broker.xml 的 < broker-connections > 部分中创建一个 sender 或 receiver 代理连接元素,可以将代理连接到另一个代理。

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

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

两个元素都作为消息总线运行。但是,处理消息不需要额外的开销。发件人和接收器的行为与代理中的任何其他消费者或生成者一样。

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

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