- 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 队列管理器如何在多个消费者之间分发消息吗?是否有可能在服务器端或消费者端影响这一点,使消息更均匀地分布在可用的消费者上?
在 Mark Taylor 回应后添加
我们面临的挑战是每分钟有超过 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/50744556/
如何在最终版本、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
我是一名优秀的程序员,十分优秀!