【问题标题】:JMS Queues that require a selector需要选择器的 JMS 队列
【发布时间】:2011-11-20 21:38:27
【问题描述】:

我想实现一个 JMS 队列以确保每条消息只传递给一个消费者。听队列时会有很多不同类型的消费者。消息应该具有标识所需工作类型的属性集,这些属性由消费者选择器使用,以确保它们只收到他们可以处理的发送工作。

我的问题是如何确保当消费者以消费者身份向队列注册时,他们实现了选择器以避免以下情况。

如果我有 3 种消息类型(A、B 和 C)和 3 个消费者(a、b 和 c),每个消费者只消费 1 种消息类型,如下所示:a->A b->B c->C 那么所有类型 A 的消息将发送到 1,类型 B 的所有消息将发送到 2 等等。

我想阻止某人注册一个没有选择器的新消费者 (d),因为这个消费者意味着 A、B、C 类型的消息现在要么发送给他们的预期消费者,要么可能发送给消费者 d。

或者,我希望队列优先考虑具有选择器的消费者,而不是没有选择器的消费者。

附言。可能的消费者和消息类型的列表是动态的,不在我的控制范围内,这就是为什么我没有为每种消息类型设置队列的原因。

【问题讨论】:

    标签: queue jms selector


    【解决方案1】:

    您无法在 JMS API 实现级别上实现它。我认为您最好的选择是对代理中的队列施加安全限制,例如您的应用程序必须提供以读取队列的用户/密码,并且只有您的应用程序才会知道。请咨询您的 JMS 提供者文档如何操作,这是任何严肃的 JMS 提供者的标准功能。

    我有一种感觉,您不想要它是出于安全原因,而是出于稳定、您自己的安心或“以防万一”。您可能必须说服公司中管理队列的人这是合理的。

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 2016-01-28
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      • 2023-03-05
      相关资源
      最近更新 更多