搜索

第 13 章 过滤消息

download PDF

AMQ Broker 提供基于 SQL 92 表达式语法的子集的强大过滤器语言。过滤器语言使用与 JMS 选择器相同的语法,但预定义的标识符不同。下表列出了应用到 AMQ Broker 消息的标识符。

标识符属性

AMQPriority

消息的优先级。消息优先级是带有从 09 的有效值的整数。0 是最低的优先级,9 是最高优先级。

AMQExpiration

消息的过期时间。该值是一个长整数。

AMQDurable

消息是否是持久化的。该值是一个字符串。有效值为 DURABLENON_DURABLE

AMQTimestamp

创建消息时的时间戳。该值是一个长整数。

AMQSize

消息的 encodeSize 属性的值。encodeSize 的值是日志中消息占用的空间(以字节为单位)。因为代理使用双字节字符集来对消息进行编码,所以消息的实际大小是 encodeSize 的值的一半。

内核过滤器表达式中使用的任何其他标识符都假定为消息的属性。有关 JMS 消息选择器语法的文档,请参阅 Java EE API

13.1. 将队列配置为使用过滤器

您可以将过滤器添加到您在 < broker_instance_dir> /etc/broker.xml 中配置的 队列。只有与过滤器表达式匹配的消息会进入队列。

流程

  • filter 元素添加到所需的 队列,并包含您要作为元素值应用的过滤器。在以下示例中,filter NEWS=' technical' 添加到队列 technologyQueue 中。

    <configuration>
      <core>
        ...
        <addresses>
            <address name="myQueue">
               <anycast>
                  <queue name="myQueue">
                    <filter string="NEWS='technology'"/>
                  </queue>
               </anycast>
            </address>
         </addresses>
       </core>
    </configuration>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.