我正在与尝试使用 JMS 队列和 IBM Websphere MQ 实现负载平衡行为的人合作。因此,他们将多个 Camel JMS 消费者配置为从同一个队列中读取。尽管根据 JMS 规范(我最后一次查看),这种行为是未定义的,但他们期望一种循环/负载平衡行为。而且,虽然规范没有定义这一点,但我相信 Websphere MQ 的正常行为是只将消息传递给一个消费者,并且它可能会执行某种类型的负载平衡。参见这里,例如:当多个 MessageConsumer 连接到同一个队列(Websphere MQ)时,如何对消息消费者进行负载平衡?
但在这种特殊情况下,似乎两个消费者都收到了相同的消息。
任何更熟悉 Websphere MQ 专家的人都可以对此有所了解吗?是否存在预期这种行为的任何情况?是否有任何配置更改可以缓解这种情况?
我倾向于告诉这里的每个人都使用本地 Websphere MQ 集群设施,并且不要让多个消费者指向同一个队列,但这对他们来说将是一个很大的变化,所以我很想找到一种方法来制作这项工作。
并不是说我喜欢依赖任何未定义的东西,但是如果他们愿意依赖 IBM 的特定行为,我将把它留给他们。