0

我正在使用 mule 3.2.1 并且有四个主要流程和一个子流程。在每个主要流程中,我都使用流程引用调用子流程。在子流中,当我调用四次子流时,将创建多少个实例?这种方法会出现任何性能问题或任何错误?请就这种方法向我提出建议。

四大流。

<flow name="DetailsFlow1" doc:name="DetailsFlow1">
    <inbound-endpoint address="${fd.address}" exchange-pattern="request-response" doc:name="Generic Point"/>
    <logger message="PAYLOAD #[payload]" level="INFO" doc:name="Logger"/>
    <cxf:jaxws-service port="80" serviceClass="com.integration.IFixedDepositDetails" mtomEnabled="true" enableMuleSoapHeaders="false" doc:name="SOAP"/>
    <choice doc:name="Choice">
        <when expression="oprationService == 'fd-con'" evaluator="ognl">
            <processor-chain>
                <component class="com.integration.impl.FixedDepositDetailsImpl" doc:name="Java"/>
                <flow-ref name="fdcasterflows1Flow1" doc:name="Flow Reference"/>                    
            </processor-chain>
        </when>
    </choice>        
</flow>


<flow name="DetailsFlow2" doc:name="DetailsFlow2">
<flow-ref name="fdcasterflows1Flow1" doc:name="Flow Reference"/>              
</flow>


<flow name="DetailsFlow3" doc:name="DetailsFlow3">
<flow-ref name="fdcasterflows1Flow1" doc:name="Flow Reference"/>              
</flow>


<flow name="DetailsFlow4" doc:name="DetailsFlow4">
<flow-ref name="fdcasterflows1Flow1" doc:name="Flow Reference"/>              
</flow>

一个子流

 <sub-flow name="fdcasterflows1Flow1" doc:name="fdcasterflows1Flow1">
    <component class="com.GetDetails" doc:name="Java"/>
</sub-flow>
4

3 回答 3

0

正如@user1760178 所说,将创建组件的四个实例,并且更好地使用池化组件配置。但是如果您的 Java 组件是无状态组件,那么将singleton范围与您的组件相关联比池化组件更好。

于 2015-02-11T05:50:38.783 回答
0

根据我对您上面提到的问题的理解,该组件是在原型范围内创建的。因此,将为组件的每个请求创建一个实例。

因此,在上述情况下,它是四个实例,因为子流被调用了四次。

如果对使用组件的子流的请求过多,那么肯定会影响性能。因此,在这种情况下,您可以选择被轮询的组件。

更多关于这在骡子网站。 http://www.mulesoft.org/documentation/display/MULE3USER/Object+Scopes

希望这可以帮助..... :)

于 2012-11-27T18:37:40.530 回答
0

根据我对您上面提到的问题的理解,该组件是在原型范围内创建的。因此,将为组件的每个请求创建一个实例。

因此,在上述情况下,它是四个实例,因为子流被调用了四次。

如果对使用组件的子流的请求过多,那么肯定会影响性能。因此,在这种情况下,您可以选择被轮询的组件。

于 2017-05-30T08:51:28.543 回答