【问题标题】:Active mq multiple consumers working in parallelActive mq 多个消费者并行工作
【发布时间】:2016-06-13 05:03:56
【问题描述】:

JMS 约定是一个线程一次只能使用 1 个会话

资源:http://activemq.apache.org/multiple-consumers-on-a-queue.html

正如您在图片中看到的,每个消费者会话 id 都是一个。是否可以,以及如何检查我的消费者是一次消费一个还是并行工作?

每个消费者的会话 id 是否相同是正确的配置?

【问题讨论】:

    标签: java jms activemq


    【解决方案1】:

    只需让您的消费者打印出一条消息并查看他们是否在并行工作。 改为在每个使用者上使用实例编号。

    【讨论】:

    • 是每个消费者的sessionid为1;配置好吗?
    • 不要依赖它,因为根据您的问题,您总是得到 1。做我写的,然后你会看到它是否并行工作。
    • 我知道 AMQ 能够并行工作。这只是为了确保您的客户做所有事情都应该这样做
    【解决方案2】:

    您似乎已从这 4 个连接中的每一个创建了 4 个单独的连接和一个使用者会话。默认情况下,从连接创建的第一个会话的 ID 为 1。因此,在您的情况下,所有 4 个会话都具有相同的 ID,因为它们与不同的连接有关。要确定代理如何平衡所有 4 个使用者对象的消息负载,您可以通过 Web 或 JMX 控制台查看相关指标。如果所有 4 个消费者都从同一个队列中消费,那么请记住默认的预取限制。

    【讨论】:

    • 在这种情况下,如果我有四个不同的队列,那么所有 4 个不同的队列都可以被四个消费者中的任何一个消费。我的理解正确吗?
    猜你喜欢
    • 2016-10-25
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 2014-10-23
    • 2020-09-12
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    相关资源
    最近更新 更多