4.5. 为点到点和发布订阅消息传递配置地址


您还可以使用点到点 和发布 订阅语义配置地址。

通常不建议将地址配置为同时使用点到点和发布订阅模式。但是,如果需要,它可能会有用。例如,一个名为 orders 的 JMS 队列,以及名为 order 的 JMS 主题。不同的路由类型使地址显示为不同的客户端连接。在这种情况下,由 JMS 队列生成者发送的消息使用 anycast 路由类型。JMS 主题制作者发送的消息使用 multicast 路由类型。当 JMS 主题消费者连接到代理时,它将连接到自己的订阅队列。但是,一个 JMS 队列消费者附加到 anycast 队列。

下图显示了点到点和发布订阅消息传递的示例。

图 4.4. 点到点和发布订阅消息传递

指向点并发布订阅消息传递

以下流程演示了如何为点到点和发布订阅消息传递配置地址。

注意

这种情境的行为取决于所使用的协议。对于 JMS,主题和队列生产者和消费者之间有一个明显的区别,即逻辑简单。AMQP 等其他协议不会区分此区别。通过 AMQP 发送的消息以 anycastmulticast 路由,消费者默认为 anycast。更多信息请参阅 第 3 章 在网络连接中配置消息传递协议

流程

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

    <configuration ...>
      <core ...>
        ...
        <address name="orders">
          <anycast>
            <queue name="orders"/>
          </anycast>
        </address>
      </core>
    </configuration>
  3. 向地址添加一个空的 multicast 配置元素。

    <configuration ...>
      <core ...>
        ...
        <address name="orders">
          <anycast>
            <queue name="orders"/>
          </anycast>
          <multicast/>
        </address>
      </core>
    </configuration>
    注意

    通常,代理会根据需求创建订阅队列,因此不需要列出 multicast 元素中的特定队列元素。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.