搜索

第 15 章 过滤消息

download PDF

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

标识符属性

AMQPriority

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

AMQExpiration

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

AMQDurable

不论消息是否持久。值是字符串。有效值为 DURABLENON_DURABLE

AMQTimestamp

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

AMQSize

消息的 encodeSize 属性的值。encodeSize 的值是空格,以字节为单位,消息在日志中占用。因为代理使用双字节字符集进行编码消息,因此消息的实际大小是 encodeSize 的值。

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

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

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

步骤

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