【发布时间】:2019-04-30 11:05:14
【问题描述】:
我们有一个 IBM MQ JMS 队列,并希望将数据分配给多个消费者以实现负载平衡。因此,如果我们编写两个 JMS 客户端从同一个 JMS 队列中消费会发生什么?消息是否会在两个消费者之间平均分配,因为一个消费者会在读取数据后删除数据?是否存在数据重复的可能性,例如两个消费者在竞争条件下读取相同的消息?
【问题讨论】:
我们有一个 IBM MQ JMS 队列,并希望将数据分配给多个消费者以实现负载平衡。因此,如果我们编写两个 JMS 客户端从同一个 JMS 队列中消费会发生什么?消息是否会在两个消费者之间平均分配,因为一个消费者会在读取数据后删除数据?是否存在数据重复的可能性,例如两个消费者在竞争条件下读取相同的消息?
【问题讨论】:
我下面的 cmets 是基于破坏性获取而不是浏览获取。
所以如果我们编写两个 JMS 客户端从同一个 JMS 队列消费 会发生吗?
他们都会消费消息。
消息是否会平均分配给两个消费者,因为 消费者读取后会删除数据吗?
没有。 “热”消费者将被提供下一条可用消息,假设它在下一条消息到达之前再次“获取”一条消息。
是否存在数据重复的可能性,例如相同的消息 在竞争条件下被两个消费者读取?
如果您正在执行破坏性获取(默认),则不会。
【讨论】: