如何设置最大并行VM流数

时间:2015-10-01 03:43:00

标签: mule

我有一个以VM开头的请求 - 响应流程。有没有办法限制流量可以并行处理的一些请求?我在3.7。谢谢。

聚苯乙烯。我尝试在VM连接器中使用maxThreadsActive,但它仍然在“源”线程中运行。这就是VM连接器的定义方式:

<vm:connector name="myvm" validateConnections="true" doc:name="VM">
        <receiver-threading-profile maxThreadsActive="1"/>
        <vm:queue-profile>
          <default-in-memory-queue-store/>
       </vm:queue-profile>
</vm:connector>

然后在流程中:

<vm:inbound-endpoint exchange-pattern="request-response" path="myqueue" connector-ref="myvm" doc:name="getevent">
    <vm:transaction action="NONE"/>
</vm:inbound-endpoint>

这是从“源”流程中调用它的方式:

<vm:outbound-endpoint exchange-pattern="request-response" path="myqueue" connector-ref="myvm" doc:name="VM">
    <vm:transaction action="NONE"/>
</vm:outbound-endpoint>

2 个答案:

答案 0 :(得分:1)

您可以将连接器或入站端点的接收器线程数配置为:

<vm:connector name="VM" validateConnections="true">
    <receiver-threading-profile maxThreadsActive="1"/>
</vm:connector>
<flow name="testFlow1">
    <vm:inbound-endpoint path="in" connector-ref="VM"/>
    <echo-component/>
</flow>

答案 1 :(得分:0)

您可以使用线程配置文件控制此操作。例如:

<configuration >
    <default-threading-profile maxBufferSize="100" maxThreadsActive="20" maxThreadsIdle="10" threadTTL="60000" poolExhaustedAction="RUN" />
</configuration>

您可以在此处阅读更多内容:https://docs.mulesoft.com/mule-user-guide/v/3.7/tuning-performance