有没有办法根据自定义标头值对 JMS 代理中的消息进行优先级排序?
例如:“购买日期”。首先获得最老的等。
请指教。
在 JMS 标准的范围内无法做到这一点。它不支持这样的自定义路由规则。
但是,许多实现 JMS 的产品支持某种基于规则的路由/优先级,因此您应该查看您的产品文档。
您可能可以使用 Apache Camel 或 ServiceMix 之类的东西来根据消息中的任何内容操作 JMSPriority 标头。ActiveMQ 内置了骆驼,我将从那里开始。
如果我们不是在谈论开源解决方案,Tibco BusinessWorks(不是粉丝)也应该可以工作。
我认为您不会直接在 JMSProvider 中找到它,这更像是一种 ESB/消息路由器。
当然,在您实际发送消息之前,您可以在发送之前将您的业务规则应用于 JMSPriority 标头。注意:我认为 ActiveMQ 在这一点上实际上并不支持 JMSPriority 标头。