如何解决ActiveMQ Artemis 中队列的过滤器应该采用什么格式?
我需要有关 ActiveMQ Artemis 过滤器的信息。我查看了官方文档,但找不到足够的解释。 我可能遗漏了一些要审查的内容。
- 队列的过滤器应该采用什么格式?
- 可以在消息中使用哪些元素进行过滤(例如标题、属性等)?
如果有任何示例或资源,我将不胜感激。
解决方法
关于“格式”(即语法)the filter documentation 声明:
Apache ActiveMQ Artemis 提供了一种基于 SQL 92 表达式语法子集的强大过滤器语言。
它与用于 JMS 选择器的语法相同,但预定义的标识符不同。有关 JMS 选择器语法的文档,请参阅 javax.jms.Message 的 JMS javadoc。
具体来说,请参阅 aforementioned JavaDoc 中的整个消息选择器部分,以获取对选择器语法的完整说明。
有一些特殊的消息属性可以与任何实际的消息属性一起用于过滤器。正如文档所述:
可以在核心过滤器表达式中使用以下标识符来引用表达式中核心消息的属性:
-
AMQPriority
。指消息的优先级。消息优先级是具有来自0 - 9
的有效值的整数。0
是最低优先级,9
是最高优先级。例如。AMQPriority = 3 AND animal = 'aardvark'
-
AMQExpiration
。指消息的过期时间。该值是一个长整数。 -
AMQDurable
。指消息是否持久。该值是一个具有有效值的字符串:DURABLE
或NON_DURABLE
。 -
AMQTimestamp
。创建消息时的时间戳。该值是一个长整数。 -
AMQSize
。消息的大小(以字节为单位)。该值为整数。
核心过滤器表达式中使用的任何其他标识符将被假定为消息的属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。