第 15 章 过滤消息
AMQ Broker 提供了一个强大的过滤语言,它基于 SQL 92 表达式语法的子集。过滤器语言使用的语法与用于 JMS 选择器的语法相同,但预定义的标识符不同。下表列出了适用于 AMQ Broker 消息的标识符。
标识符 | 属性 |
---|---|
AMQPriority |
消息的优先级。消息优先级是带有有效值(从 |
AMQExpiration | 消息的过期时间。该值是一个长整数。 |
AMQDurable |
不论消息是否持久。值是字符串。有效值为 |
AMQTimestamp | 创建消息的时间戳。该值是一个长整数。 |
AMQSize |
消息的 |
假定核心过滤器表达式中使用的任何其他标识符都是消息的属性。有关 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>