定义HTTP请求者配置/连接器上的线程数

时间:2016-12-28 09:02:24

标签: multithreading mule mule-studio

我正在尝试控制Mule中传出HTTP连接的maxThreadsActive和maxThreadsIdle的数量。

设置default-threading-profile不会影响为HTTP请求者分配的线程数量。

对于HTTP侦听器,可以通过http:worker-threading-profile设置线程配置文件,如下所示:

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration">
    <http:worker-threading-profile maxThreadsActive="2" maxThreadsIdle="1" threadTTL="60000"/>
</http:listener-config>

但我找不到在http:request元素上应用线程配置文件的方法。

除此之外,我想知道http:worker-threading-profile在这种情况下如何为监听器工作,当我使用分析器(VisualVM)时,我没有看到为分配给它的线程数量的任何变化HTTP侦听器。

关于HTTP端点的线程以及如何控制它们并验证它的任何想法?

下面的屏幕截图来自一个简单的测试应用程序,其中应用了如上所述的线程配置文件。

enter image description here

相同的应用程序有一个简单的http:request config,对于出站HTTP连接(请求者)我总是得到这个线程数:

enter image description here

1 个答案:

答案 0 :(得分:0)

我自己从未尝试过,但研究和培训中的一些信息表明:如果您的流程使用synchronous processing strategy,Mule根据您的消息来源和流行为设置,则处理在同一个线程中完成。这可能解释了为什么您没有看到为HTTP侦听器分配的线程数量的任何变化。如果消息源是请求 - 响应,则流被设置为同步 - 消息的发送者期待响应或者流transaction中涉及流。

否则,Mule将流设置为排队异步。在这种情况下,您可以使用flow的属性视图设置线程(在Studio中,选择流本身并在属性中查找Processing Strategy)。将流的属性设置为described in the docs.您没有为HTTP请求者设置线程。