【问题标题】:Does Multiple JMS Consumers to same MQ JMS Queue guarantees Load Balancing?多个 JMS 消费者到同一个 MQ JMS 队列是否保证负载平衡?
【发布时间】:2019-04-30 11:05:14
【问题描述】:

我们有一个 IBM MQ JMS 队列,并希望将数据分配给多个消费者以实现负载平衡。因此,如果我们编写两个 JMS 客户端从同一个 JMS 队列中消费会发生什么?消息是否会在两个消费者之间平均分配,因为一个消费者会在读取数据后删除数据?是否存在数据重复的可能性,例如两个消费者在竞争条件下读取相同的消息?

【问题讨论】:

    标签: jms ibm-mq


    【解决方案1】:

    我下面的 cmets 是基于破坏性获取而不是浏览获取。

    所以如果我们编写两个 JMS 客户端从同一个 JMS 队列消费 会发生吗?

    他们都会消费消息。

    消息是否会平均分配给两个消费者,因为 消费者读取后会删除数据吗?

    没有。 “热”消费者将被提供下一条可用消息,假设它在下一条消息到达之前再次“获取”一条消息。

    是否存在数据重复的可能性,例如相同的消息 在竞争条件下被两个消费者读取?

    如果您正在执行破坏性获取(默认),则不会。

    【讨论】:

    • 说如果我有两个客户端连接到同一个队列执行破坏性获取,那么可以保证只有一个消费者读取消息而不是两个消费者?只是想确保两个消费者都不会阅读相同的消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 2011-06-04
    • 2012-11-27
    • 2011-10-23
    • 2013-04-10
    • 2013-03-23
    相关资源
    最近更新 更多