【问题标题】:How can I unregister from a JMS message group without killing the entire consumer (ActiveMQ)如何在不杀死整个消费者(ActiveMQ)的情况下从 JMS 消息组中注销
【发布时间】:2011-02-11 23:01:52
【问题描述】:

在我的分布式应用程序中,我将处理请求分派到 JMS 队列。我有多个节点从该队列中消耗(负载平衡)。处理请求需要将相当大的用户特定数据加载到内存中,我显然希望将这些数据保留在内存中以供后续请求使用。因此,我使用 JMSXGroupId 和用户 ID 来确保特定用户的所有请求都由已经缓存数据的节点处理。

一段时间后,当用户不再活动时,我想卸载节点上的数据。同时,我希望该节点放弃相关 JMS 消息组的所有权。

我知道我通过关闭相应的消费者来放弃组的所有权。但是,这意味着我将失去与该消费者相关的所有组的所有权,而不仅仅是我刚刚为其卸载缓存数据的组。

有没有办法在消费者方面放弃对特定群体的所有权?

独立于代理的方式会更好,但如果这是唯一的方式,我会选择 ActiveMQ 特定的解决方案。另外,请随意建议如何使用您最喜欢的消息代理来完成此操作。

【问题讨论】:

    标签: java jms load-balancing activemq distributed-computing


    【解决方案1】:

    如果不关闭消费者,您现在无法执行此操作。 Consumer != connection btw - 那么你为什么不在每个连接使用多个消费者 - 每组一个?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2021-03-06
      • 2016-06-08
      • 2019-10-27
      • 2016-10-24
      • 1970-01-01
      • 2013-09-08
      相关资源
      最近更新 更多