4.3. 为点到点消息传递配置地址


点到点消息传递是一个常见场景,其中生成者发送的消息只有一个消费者。AMQP 和 JMS 消息生成者和使用者可以利用点对点的消息传递队列,例如:为确保在点到点的方式中队列与一个接收消息的地址相关联,在您的代理配置中为给定的 address项定义一个 anycast 路由类型。

当消息在一个使用 anycast 的地址上接收时,代理会找到与地址关联的队列,并将消息路由到它。然后,消费者可能会请求使用该队列的消息。如果多个用户连接到同一队列,则消息会在消费者之间平均分配,只要使用者可以平等地处理它们。

下图显示了点对点的消息传递示例。

图 4.1. 点到点的消息传递

4.3.1. 配置基本点到点消息

以下流程演示了如何使用单一队列为点到点消息传递配置地址。

流程

  1. 打开 & lt;broker_instance_dir> /etc/broker.xml 配置文件。
  2. 使用一个 address 所选的 queue 项环绕一个 anycast 配置项。确保 addressqueue 元素的 name 属性的值相同。例如:

    <configuration ...>
      <core ...>
        ...
        <address name="my.anycast.destination">
          <anycast>
            <queue name="my.anycast.destination"/>
          </anycast>
        </address>
      </core>
    </configuration>
    Copy to Clipboard Toggle word wrap

4.3.2. 为多个队列配置点到点消息传递

您可以在使用 anycast 路由类型的地址上定义多个队列。代理在所有关联的队列中平均分配发送到 anycast 地址的信息。通过指定 完全限定域名 (FQQN),您可以将客户端连接到特定的队列。如果多个消费者连接到同一队列,代理会在消费者之间平均分配消息。

下图显示了使用两个队列的点对点消息传递示例。

图 4.2. 使用两个队列的点到点消息传递

以下流程演示了如何为具有多个队列的地址配置点到点消息传递。

流程

  1. 打开 & lt;broker_instance_dir&gt; /etc/broker.xml 配置文件。
  2. 使用在 address 项中的 queue 项环绕一个 anycast 配置项。例如:

    <configuration ...>
      <core ...>
        ...
        <address name="my.anycast.destination">
          <anycast>
            <queue name="q1"/>
            <queue name="q2"/>
          </anycast>
        </address>
      </core>
    </configuration>
    Copy to Clipboard Toggle word wrap

如果您有一个配置,如上面显示在集群中的多个代理间镜像的配置,集群可以以不对生产者和消费者不透明的方式实现平衡点到点的消息传递。确切的行为取决于如何为集群配置消息负载均衡策略。

其他资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat