搜索

第 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 中配置的队列中添加过滤器。仅与过滤器表达式匹配的消息即可进入队列。

流程

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

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