搜索

第 13 章 过滤消息

download PDF

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

标识符属性

AMQPriority

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

AMQExpiration

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

AMQDurable

消息是否持久.该值是一个字符串。有效值为 DUR ABLE 或 NON_DURABLE

AMQTimestamp

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

AMQSize

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

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

13.1. 配置队列以使用过滤器

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

流程

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

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