我们有一个IBM MQ JMS队列,希望将数据分布到多个使用者中以实现负载平衡。因此,如果我们编写两个JMS客户端以从同一JMS队列使用,将会发生什么?消息是否会在两个使用者之间平均分配,因为一个使用者将在读取数据后删除数据?是否有可能进行数据复制,例如如果两个使用者在竞争条件下都读取了相同的消息?
答案 0 :(得分:2)
我在下面的评论基于破坏性获取而非浏览获取。
因此,如果我们编写两个JMS客户端以从同一个JMS队列使用, 会发生吗?
它们都将消耗消息。
自一个开始,消息将在两个使用者之间平均分配 消费者在读取数据后会删除数据吗?
不。假设“热”使用者在下一条消息到达之前再次“获得”一条消息,则将为其提供下一条可用消息。
是否存在重复数据的可能性,例如是否出现相同的消息 两个消费者在比赛状态下都阅读?
如果您正在执行破坏性获取(默认设置),则不会。