【问题标题】:Setting JMS filter (Range filter)设置 JMS 过滤器(范围过滤器)
【发布时间】:2013-04-19 09:57:17
【问题描述】:

**我在 Producer 端设置 JMS 过滤器,即 jmsMessage.setObjectProperty("FILTER",filterId1) ...

所以这是一对一的关系。即键 FILTER 仅与一个值相关联,即 filterId1 ( msg 由值为 filterid1 的消费者使用)....

但我想要一对多的关系,即FILTER 与许多 filterId 相关联(filterId1 或 filterId2 或 filterId3 或 filterId4 或 filterId5 ) 在任何这些 filterId 之间具有值的消费者都可以使用该消息.....

是 jms 中的任何功能,如果没有,那么我们如何以编程方式实现它.....**

【问题讨论】:

    标签: jms hornetq


    【解决方案1】:

    您可以在过滤器上使用 Between,但我怀疑您可能应该为您的集合使用不同的队列。如果您有许多要扫描的邮件,过度使用过滤器会给您带来不好的性能。

    我更喜欢带有过滤器的订阅,或者简单地使用多个队列来获取您需要的东西。

    但这不仅仅是简单地回答你的问题,一个简单的答案是在你的消费者的过滤子句上使用 BETWEEN。

    (另外:生产者中没有 JMS 过滤器之类的东西。过滤器仅适用于消费者。我假设您的意思是设置一些将在过滤器上使用的数据)。

    【讨论】:

    • 这意味着我应该使用消息选择器 rt?
    • 这意味着我应该使用这样的消息选择器....rt? MessageConsumer tconsumer= session.createConsumer(queue,"filterId=BETWEEN 5 AND 10");而且我不需要扫描很多消息(100 条消息/小时)......所以我猜过滤器很好,而不是多个队列......?
    猜你喜欢
    • 2020-01-10
    • 2020-11-24
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多