第 13 章 过滤消息
AMQ Broker 根据 SQL 92 表达式语法的子集提供强大的过滤器语言。过滤器语言使用与 JMS 选择器相同的语法,但预定义的标识符有所不同。下表列出了应用到 AMQ Broker 消息的标识符。
| identifier | 属性 |
|---|---|
| AMQPriority |
消息的优先级。消息优先级是带有从 |
| AMQExpiration | 消息的过期时间。该值是一个长整数。 |
| AMQDurable |
消息是持久化的。该值是一个字符串。有效值为 |
| AMQTimestamp | 创建消息的时间戳。该值是一个长整数。 |
| AMQSize |
消息的 |
在核心过滤器表达式中使用的任何其他标识符都被假定为消息的属性。有关 JMS 消息选择器语法的文档,请参见 Java EE API。
13.1. 将队列配置为使用过滤器 复制链接链接已复制到粘贴板!
您可以在 < broker_instance_dir> /etc/broker.xml 中配置的队列中添加过滤器。仅匹配过滤器表达式的消息才会进入队列。
流程
将
filter元素添加到所需的队列中,并包含您要应用的过滤器作为元素的值。在以下示例中,过滤器NEWS=' Technical'被添加到队列技术Queue中。<configuration> <core> ... <addresses> <address name="myQueue"> <anycast> <queue name="myQueue"> <filter string="NEWS='technology'"/> </queue> </anycast> </address> </addresses> </core> </configuration>