- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个 IBM MQ v8 设置,其中包含 1 个大容量非持久队列和该队列上的许多使用者 (50+)。需要大量的消费者才能处理队列上发布的大量消息。
我们现在注意到队列管理器没有将消息均匀地分配给 X 个消费者。少数消费者每分钟最多收到 300 条消息,而许多其他消费者每分钟仅收到几条消息 (<10)。并且,队列上有很多消息,并且队列深度在稳步增加。消费端的CPU和内存不是问题,两者的利用率都<50%。
有人可以解释一下 IBM MQ 队列管理器如何向多个使用者分发消息吗?是否有可能在服务器端或消费者端影响这一点,以便消息更均匀地分布在可用的消费者上?
在马克·泰勒回复后添加
我们面临的挑战是每分钟有超过 10.000 条消息添加到队列中,而我们无法足够快地消耗它们。我们当前的设置是,我们有一个在 Docker 容器中运行的简单消费者,并且我们通过运行多个容器来进行扩展。运行 12 个消费者(Docker 容器)确实会增加整体吞吐量,运行 50 个以上消费者不会增加任何吞吐量。每个消费者都很简单:
1. connect to queue manager
2. Connect to queue
3. While true
- Get message from queue
- Process message (commenting this out does not increase overall performance)
如何才能获得更高的消息消耗性能?例如,如果在一个容器中我们连接到队列管理器一次,然后让多个线程使用同一队列管理器连接到队列并获取消息,这会有帮助吗?或者我们是否应该在多个线程上重用队列?
问候,
下罗
最佳答案
MQ 的默认行为是将消息提供给最近的 getter。这通常会提高性能,因为该进程最有可能是“热”的(在处理器缓存中)。因此,您不应期望消息的平均分配。如果您看到一个应用程序获取了最多的消息,则意味着它经常在处理一条消息后才可以检索另一条消息。在下一条消息可用之前,它正在重新加入服务员队列。
有很多方面会影响整体性能,包括事务性、检索标准、争用等,因此实际上不可能说出您的问题是什么,或者是否更改默认分配算法(有一个未记录的调整参数可以反转队列)服务员)会有所帮助。拥有客户端连接,而等待实际上是由“代理”svrconn 进程和线程完成的,这使得事情变得更加复杂。
关于ibm-mq - IBM MQ QM 如何向多个使用者分发消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60484299/
如何在最终版本、Visual Studio Qt 项目中包含 C:\Qt\5.9.1\msvc2015\translations .qm 文件(Qt 框架 qm 文件)? 我正在使用以下方式加载文件:
我正在查看英特尔提供的 RDRAND 指令的引用实现。页面是Intel Digital Random Number Generator (DRNG) Software Implementation G
friend 们, 我想通过绑定(bind)方法(JNI)在java中连接远程IBM QM。是否可以?。别的指导我在 java 中实现更好的选择。 最佳答案 使用绑定(bind)模式,您只能连接到与您
我的应用程序有一些 qm 文件。 (pr_en.qm,pr_ru.qm)。我可以加载它们 translator.load(fileName, '.'); qApp->installTranslator
我了解如何按照此处所述对正交组件进行编码:http://www.state-machine.com/resources/Pattern_Orthogonal.pdf .我的问题是 QM 只允许每个事件
我在 Ubuntu 16.04 系统上工作,并尝试根据源目录中的自述文件使用 qm 命令编译应用程序。当我尝试运行命令时,我得到了休息: $ qm qm: command not found 这表明我
现在国内职业的质量管理都是从 CMMI 和 ISO 质量体系演化过来的,但是能做真正的质量管理的公司很少。 质量管理的 QC 偏测试,对最终的产品负责;QA 偏过程,从过程把控质量;QM 偏体系,
将已编译的翻译 (*.qm) 组织到资源中的最佳(正确)方法是什么?*.qm 文件在 qrc 文件中引用并由两(三)个额外目标以这种方式生成: trans_update.commands = lupd
将已编译的翻译 (*.qm) 组织到资源中的最佳(正确)方法是什么?*.qm 文件在 qrc 文件中引用并由两(三)个额外目标以这种方式生成: trans_update.commands = lupd
我正在尝试使用翻译文件。我经历了所有的程序: 创建了 ts 文件,翻译了它,但是当我运行应用程序时,语言仍然和以前一样。 我在诺基亚示例中工作,就像在说明中一样。 我的问题可能是什么? int mai
假设我有一个程序只使用 forkOn 生成线程。 .在这种情况下,不同能力之间的 Haskell 线程将没有负载平衡。那么在有没有+RTS -qm 的情况下执行这个程序有区别吗? ? 根据文档,-qm
Qt Linguist or lrelease是用于生成二进制 .qm Qt 消息文件的工具。 有什么方法可以逆转生成 .qm 文件的过程吗? 目标是逆向一个 .qm 文件并通过一些修改重新编译它,但
我们有一个 IBM MQ v8 设置,其中包含 1 个大容量非持久队列和该队列上的许多使用者 (50+)。需要大量的消费者才能处理队列上发布的大量消息。 我们现在注意到队列管理器没有将消息均匀地分配给
我们有一个 IBM MQ v8 设置,其中包含 1 个高容量非持久性队列和该队列上的许多消费者 (50+)。需要大量消费者才能处理在队列上发布的大量消息。 我们现在注意到队列管理器没有将消息平均分配给
我正在尝试使用 Java 读取 .qm 翻译文件。.qm 文件是二进制文件。我无权访问 .ts 文件。我没有找到有关这些 .qm 文件的太多信息。它们的结构如何?问候, 最佳答案 据我所知,没有任何文
我正在使用 Qt 4.5 将 .ts 文件转换为 .qm 文件。但是现在我丢失了 .ts 文件。 我如何将它转换回 - 从 .qm 到 .ts? 最佳答案 使用转换 lconvert compiled
我正在尝试配置我的 WMQ。队列管理器一直在运行,直到我更改 muusr_mqadmin 帐户的密码。现在我创建的本地队列管理器无法再启动 弹出窗口显示“用于安装“installation1”的 MQ
我正在尝试在我的 Qt 项目(Linux 系统上的 Qt 5.6)中导入翻译文件,但我无法上传翻译文件,因为 QTranslator::load 方法始终返回 false。 我有以下“testTrl”
我正在尝试为教育目的实现 QM 编码。我的主要资源是第 5 版数据压缩手册的第 5.11 章。这是我目前粗略的编码器实现: def _encode_bit(self, bit): if bit
Miro Samek 的 QM 图形建模工具 (http://www.state-machine.com/qm/) 似乎是用于 QP 框架的 UML 状态图的半图形编辑的好工具。然而,我想使用 ecl
我是一名优秀的程序员,十分优秀!