首页 > 解决方案 > 集群中的一个 mule 应用服务器轮询来自 MQ 的最大消息

问题描述

我的 mule 应用程序由运行在集群中的 2 个节点组成,它侦听 IBM MQ 集群(基本上通过队列管理器连接到 2 个 MQ)。在某些情况下,一个 mule 节点从 MQ 集群中提取或获取超过 80% 的消息,而另一个 mule 节点选择剩余的 20%。这会导致 CPU 性能问题。我们仔细检查了所有负载平衡是否正确,很少出现 CPU 性能问题。请任何人都可以给出一些想法,这可能是什么原因。

示例:创建了最后一个场景,队列中有 200000 条消息,node2 mule 服务器在几分钟内从队列中挑选了 92% 的消息。

标签: muleload-balancingibm-mqcpu-usagemule-esb

解决方案


此问题现已修复。找到根本原因 - 我们在 MULE_NODE01 上运行的 mule 应用程序读取/写入 WMQ_NODE01,对于节点 2 也是如此。其中一个 mule 节点(比如说 MULE_NODE02)从 linux/windows 文件系统读取并将大量消息发送到其相应的 WMQ_NODE02。现在,它的 IBM MQ 尝试将最大负载推送到其他 WMQ 节点以平衡工作负载。这就是为什么 MULE_NODE01 从 WMQ_NODE01 读取所有加载的文件并导致 CPU 使用警报的原因。

@JoshMc 您的线索对理解这些问题有很大帮助,非常感谢您的帮助。

它在集群中的 WMQ 节点试图将最大负载推送到其他 WMQ 节点,这似乎是 MQ 在内部的工作方式。

为了解决这个问题,我们现在将我们的 mule 节点连接到 MQ 网关,而不是进行 1 对 1 连接


推荐阅读