4.12.2. 自动创建过期资源


常见的用例是根据原始地址来隔离过期的信息。例如,您可以选择将名为 stocks 的地址中的过期信息路由到名为 EXP.stocks 的到期队列。同样,您可以将名为 orders 的地址中的过期信息路由到名为 EXP.orders 的到期队列。

这种路由模式有助于轻松跟踪、检查和管理过期的消息。但是,在主要自动创建的地址和队列的环境中很难实现此模式。在这种类型的环境中,管理员不希望手动创建地址和队列来保存过期信息所需的额外工作。

作为解决方案,您可以将代理配置为自动创建资源(即地址和队列)以处理给定地址 或一组 地址的过期信息。以下流程演示了一个例子。

先决条件

步骤

  1. 打开 <broker-instance-dir>/etc/broker.xml 配置文件。
  2. 找到您之前添加到配置文件的 <address-setting> 元素,为匹配的地址 或一组 地址定义到期地址。例如:

    <configuration ...>
    
       <core ...>
          ...
          <address-settings>
             ...
             <address-setting match="stocks">
                ...
                <expiry-address>ExpiryAddress</expiry-address>
                ...
             </address-setting>
             ...
          <address-settings>
    <configuration ...>
  3. <address-setting> 元素中,添加指示代理自动创建到期资源(即地址和队列)的配置项以及如何命名这些资源。例如:

    <configuration ...>
       <core ...>
          ...
          <address-settings>
             ...
             <address-setting match="stocks">
                ...
                <expiry-address>ExpiryAddress</expiry-address>
                <auto-create-expiry-resources>true</auto-create-expiry-resources>
                <expiry-queue-prefix>EXP.</expiry-queue-prefix>
                <expiry-queue-suffix></expiry-queue-suffix>
                ...
             </address-setting>
             ...
          <address-settings>
    <configuration ...>
    auto-create-expiry-resources

    指定代理是否自动创建到期地址和队列来接收过期的信息。默认值为:false

    如果参数值设置为 true,代理会自动创建一个 <address> 元素来定义到期地址和关联的到期队列。自动创建的 <address> 元素的 name 值与为 <expiry-address> 指定的值匹配。

    自动创建的到期队列具有 多播路由 类型。默认情况下,代理将到期队列名称与最初发送消息的过期消息的地址匹配,例如 库存

    代理还为使用 _AMQ_ORIG_ADDRESS 属性的到期队列定义过滤器。此过滤器确保到期队列仅接收发送到对应原始地址的消息。

    expiry-queue-prefix

    代理应用到自动创建的到期队列的名称的前缀。默认值为 EXP。

    当您定义前缀值或保留默认值时,到期队列的名称是前缀和原始地址的串联,如 EXP.stocks

    expiry-queue-suffix
    代理应用到自动创建的到期队列名称的后缀。未定义默认值(即代理不应用后缀)。

您可以使用队列名称本身直接访问到期队列(例如,在使用 AMQ Broker Core Protocol JMS 客户端时),或者使用完全限定的队列名称(例如,使用其他 JMS 客户端)。

注意

由于自动创建到期地址和队列,与删除自动创建的地址和队列相关的任何地址设置同样适用于这些到期资源。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.