【问题标题】:Mule thread pool size capMule 线程池大小帽
【发布时间】:2023-03-30 11:18:01
【问题描述】:

我正在尝试将线程池大小设置为大于我正在测试我的 Mule 应用程序的机器的内核数。

<vm:connector name="persistent" doc:name="VM">
   <receiver-threading-profile
       maxThreadsActive="64"
       poolExhaustedAction="WAIT"
       threadWaitTimeout="-1"/>
   <vm:queue-profile maxOutstandingMessages="5000">
       <default-persistent-queue-store/>
   </vm:queue-profile>
</vm:connector>

最终,我看到 Mule 将线程数限制为我机器的核心数。即使我尝试在通用配置元素中设置默认池大小,我仍然会遇到相同的限制。

<configuration doc:name="Configuration">
    <default-threading-profile maxThreadsActive="64" maxThreadsIdle="32"/>
</configuration>

这就是发生的事情(我的机器有 4 个核心)

INFO  2014-11-11 11:12:22,023 [[App-1.0].persistent.receiver.03] org.mule.api.processor.LoggerMessageProcessor: Order 21036
INFO  2014-11-11 11:12:22,025 [[App-1.0].persistent.receiver.01] org.mule.api.processor.LoggerMessageProcessor: Order 21037
INFO  2014-11-11 11:12:22,030 [[App-1.0].persistent.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Order > 6 21038
INFO  2014-11-11 11:12:23,040 [[App-1.0].persistent.receiver.04] org.mule.api.processor.LoggerMessageProcessor: Order 21040
INFO  2014-11-11 11:12:23,040 [[App-1.0].persistent.receiver.03] org.mule.api.processor.LoggerMessageProcessor: Order 21039
INFO  2014-11-11 11:12:23,041 [[App-1.0].persistent.receiver.01] org.mule.api.processor.LoggerMessageProcessor: Order > 6 21041
INFO  2014-11-11 11:12:23,043 [[App-1.0].persistent.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Order 21042
INFO  2014-11-11 11:12:24,060 [[App-1.0].persistent.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Order < 3 27
INFO  2014-11-11 11:12:24,061 [[App-1.0].persistent.receiver.03] org.mule.api.processor.LoggerMessageProcessor: Order 24
INFO  2014-11-11 11:12:24,062 [[App-1.0].persistent.receiver.01] org.mule.api.processor.LoggerMessageProcessor: Order > 6 26
INFO  2014-11-11 11:12:24,063 [[App-1.0].persistent.receiver.04] org.mule.api.processor.LoggerMessageProcessor: Order 23
INFO  2014-11-11 11:12:25,081 [[App-1.0].persistent.receiver.04] org.mule.api.processor.LoggerMessageProcessor: Order > 6 29
INFO  2014-11-11 11:12:25,083 [[App-1.0].persistent.receiver.01] org.mule.api.processor.LoggerMessageProcessor: Order < 3 28
INFO  2014-11-11 11:12:25,090 [[App-1.0].persistent.receiver.03] org.mule.api.processor.LoggerMessageProcessor: Order > 6 30
INFO  2014-11-11 11:12:25,092 [[App-1.0].persistent.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Order 31
INFO  2014-11-11 11:12:26,099 [[App-1.0].persistent.receiver.04] org.mule.api.processor.LoggerMessageProcessor: Order > 6 32
INFO  2014-11-11 11:12:26,103 [[App-1.0].persistent.receiver.03] org.mule.api.processor.LoggerMessageProcessor: Order 33
INFO  2014-11-11 11:12:26,103 [[App-1.0].persistent.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Order < 3 34
INFO  2014-11-11 11:12:26,105 [[App-1.0].persistent.receiver.01] org.mule.api.processor.LoggerMessageProcessor: Order 35
INFO  2014-11-11 11:12:27,118 [[App-1.0].persistent.receiver.03] org.mule.api.processor.LoggerMessageProcessor: Order < 3 41
INFO  2014-11-11 11:12:27,119 [[App-1.0].persistent.receiver.04] org.mule.api.processor.LoggerMessageProcessor: Order > 6 40
INFO  2014-11-11 11:12:27,122 [[App-1.0].persistent.receiver.02] org.mule.api.processor.LoggerMessageProcessor: Order < 3 42
INFO  2014-11-11 11:12:27,125 [[App-1.0].persistent.receiver.01] org.mule.api.processor.LoggerMessageProcessor: Order 43

如何实际将接收器线程池大小增加到 64?

【问题讨论】:

    标签: java multithreading mule


    【解决方案1】:

    还有一个名为 numberOfConcurrentTransactedReceivers 的参数以某种方式隐藏。我在 Mule doc 网站的任何地方都找不到它,甚至在 Dossot 的书中也找不到。以下配置对我有用:

    <vm:connector
        name="order.vm.connector"
        createMultipleTransactedReceivers="true"
        numberOfConcurrentTransactedReceivers="64" >
    
        <receiver-threading-profile
            maxThreadsActive="64"
            poolExhaustedAction="WAIT"
            threadWaitTimeout="-1" />
    
        <vm:queue-profile maxOutstandingMessages="4096">
            <default-persistent-queue-store />
        </vm:queue-profile>
    
    </vm:connector>
    
    <vm:endpoint
        exchange-pattern="one-way"
        name="order.vm.endpoint"
        path="order.vm"
        connector-ref="order.vm.connector" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 2012-08-06
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      相关资源
      最近更新 更多