限制HTTP侦听器活动线程以控制并发mule流实例的数量

时间:2015-03-17 09:58:53

标签: mule mule-component

我正在尝试测试如何限制并发传入HTTP请求的数量。 所以我试着模拟以下场景。 我创建了一个简单的流程 1. Http Listener作为Msg源 2.使用Groovy Script,睡眠15秒以引入延迟 3.使用Hello world设置Payload。

因此,任何一个请求都有15秒的响应时间。然后,为了限制活动线程的数量(即假设控制并发请求/处理线程),我已将maxActiveThreads设置为1.因此,理想情况下,我将允许1个并发线程处理流。

现在,当我使用apache基准测试时,简单地获取1个请求,我收到响应时间为15秒,这很好。现在当我将并发请求数增加到2时,我仍然收到15秒的响应时间。我期待它是30秒

我看到了9个并发请求之前的行为。超过9,然后从第10个请求开始,它被置于等待队列中。

请专家解释如何将活动线程的数量限制为1.如何将并发请求的数量设置为9(我在使用JConsole的线程中看到有9个{{1} }线程,我认为它与它有关联)。

以下是简单的流程。

SelectorRunner

1 个答案:

答案 0 :(得分:2)

正如forum中所述,您需要为poolExhaustedAction定义worker-threading-profile。如果你没有,那么将使用默认的RUN,这解释了你所看到的行为。根据我的理解,你应该使用WAIT。

<http:worker-threading-profile maxThreadsActive="1" poolExhaustedAction="WAIT"/>