第 13 章 过滤消息


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

identifier属性

AMQPriority

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

AMQExpiration

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

AMQDurable

消息是否是 durable。该值是一个字符串。有效值为 DURABLENON_DURABLE

AMQTimestamp

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

AMQSize

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

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

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

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

流程

  • filter 元素添加到所需的 队列,并包含您要应用的作为元素值的过滤器。在以下示例中,filter NEWS='certification' 添加到队列 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.