【问题标题】:IBM MQ Maximum ConnectionsIBM MQ 最大连接数
【发布时间】:2020-07-25 06:16:19
【问题描述】:

我在我的应用程序中使用 IBM MQ,并且连接工厂是在 Jboss 级别定义的。 Jboss 级别的最大池大小属性配置为 50。通道的每个客户端配置的最大实例数设置为 999999999。共享对话保持默认值 10。 如果有人能详细说明这些连接是如何工作的,我将不胜感激?

我了解 JVM 可以建立到队列管理器的最大连接数是 50(最大连接池)。如果我有 50 个并行运行的消息侦听器线程,所有这些线程都将被消耗。但是通道级别,共享会话是 10,这意味着通过单个 TCP 连接最多可以共享 10 个会话。在这种情况下,我们没有使用此功能,因为我们用尽了 50 个连接。如果一个连接允许 10 次共享,我们应该会看到 50 条消息只建立了 5 个连接?

另外,如果我们有 100 条消息要消费或加载,因为我们将最大通道设置为一个较高的值,这是否意味着将操作 100 个通道,或者 10 个通道,每个通道有 10 个共享会话?

如果上述假设完全错误,请原谅,因为我是异步架构的初学者。

【问题讨论】:

标签: spring jboss websphere message-queue mq


【解决方案1】:

共享会话用于调整 mq 服务器的负载平衡。当使用多个共享覆盖时,客户端代码充当它对通道实例具有锁定或循环访问权限。因此,如果有 10 个共享对话的 50 个听众正在等待消息,那么任何时候只有 5 个处于活动状态。每个通道实例一个。无论 JVM 中的线程模型。

通过将共享对话设置为 1,您可以消除这种竞争。代价是更高的资源使用率。 Keep this number to 1 除非你有大量的轻量级队列。

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 2014-08-30
    • 2016-01-21
    • 1970-01-01
    • 2015-10-09
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多