mule - 集群中的一个 mule 应用服务器轮询来自 MQ 的最大消息
问题描述
我的 mule 应用程序由运行在集群中的 2 个节点组成,它侦听 IBM MQ 集群(基本上通过队列管理器连接到 2 个 MQ)。在某些情况下,一个 mule 节点从 MQ 集群中提取或获取超过 80% 的消息,而另一个 mule 节点选择剩余的 20%。这会导致 CPU 性能问题。我们仔细检查了所有负载平衡是否正确,很少出现 CPU 性能问题。请任何人都可以给出一些想法,这可能是什么原因。
示例:创建了最后一个场景,队列中有 200000 条消息,node2 mule 服务器在几分钟内从队列中挑选了 92% 的消息。
解决方案
此问题现已修复。找到根本原因 - 我们在 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 连接
推荐阅读
- powershell - 尝试在 Windows 容器中使用巧克力创建 Jenkins docker 容器
- javascript - 如何在 POS models.js 中扩展初始化函数
- python - 将动态数据添加到子类化的 QAbstractTableModel
- c# - 具有 iqueryable 的动态 linq 查询未正确评估
- powershell - 是否可以在 -Path 和 -DestinationPath 中使用 PSDrive 来使用 Compress-Archive?
- java - Veracode CWE ID 404 不正确的资源关闭或释放
- excel - 使用获取数据功能将 Google 工作表连接到 Excel 时被要求登录
- xamarin - webview加载html表单本地下载文件夹适用于IOS不适用于Xamarin表单中的Android
- python - Seaborn boxplot 和 regplot 转移
- amazon-rds - RDS 到光帆数据库迁移