骡流变量与会话变量性能

时间:2014-02-25 01:08:54

标签: mule mule-studio mule-el

除了Mulesoft页面中描述的流变量和会话变量之间的功能差异外,使用这两者时是否还有重要的性能差异?

对于我的项目,使用流和会话变量可以很好地工作。因此,我需要决定使用哪个。

2 个答案:

答案 0 :(得分:3)

当消息跨越传输边界时,会话变量不断被序列化和反序列化。

但是,您说您可以在项目中交替使用流量或会话变量,这意味着您没有任何传输边界(否则您将丢失流量变量)。

在这种情况下,流变量和会话变量都执行相同的操作:它们只是事件的属性。

请注意,会话变量往往会通过HTTP端点泄露,因此请小心使用它们。

答案 1 :(得分:1)

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" 
    xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" 
    xmlns="http://www.mulesoft.org/schema/mule/core" 
    xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-current.xsd
    http://www.mulesoft.org/schema/mule/core 
    http://www.mulesoft.org/schema/mule/core/current/mule.xsd
    http://www.mulesoft.org/schema/mule/http 
    http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
    http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">
    <http:request-config name="HTTP_Request_Configuration" host="localhost" port="8034" doc:name="HTTP Request Configuration"/>
    <flow name="understandingvariablesFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/vars" doc:name="HTTP"/>
        <set-variable variableName="flv" value="flowVariable exists" doc:name="LocalVariable"/>
        <set-session-variable variableName="sessVar" value="sessionVariable exists" doc:name="Session Variable"/>
        <flow-ref name="practiceSub_Flow" doc:name="practiceSub_Flow"/>
        <flow-ref name="localVarible" doc:name="localVarible"/>
        <flow-ref name="practiceAnotherFLow" doc:name="practiceAnotherFLow"/>
        <http:request config-ref="HTTP_Request_Configuration" path="/localvar" method="POST" doc:name="HTTP"/>
    </flow>
    <flow name="localVarible">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/localvar" doc:name="HTTP"/>
        <logger message="#[flowVars.flv]" level="INFO" doc:name="LocalVarible Value"/>
        <logger message="#[sessionVars.sessVar]" level="INFO" doc:name="Session Var"/>
    </flow>
</mule>
-------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:secure-property-placeholder="http://www.mulesoft.org/schema/mule/secure-property-placeholder" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
    http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
    http://www.mulesoft.org/schema/mule/secure-property-placeholder http://www.mulesoft.org/schema/mule/secure-property-placeholder/current/mule-secure-property-placeholder.xsd
    http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
    http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
    http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8034" doc:name="HTTP Listener Configuration"/>
    <sub-flow name="practiceSub_Flow">
        <logger message="Another flow's sub flowPractice #[flowVars.flv] and #[sessionVars.sessVar]" level="INFO" doc:name="Sub flow"/>
    </sub-flow>
    <flow name="practiceAnotherFLow">
        <logger message="Another xml file flow's flowPractice #[flowVars.flv] and #[sessionVars.sessVar]" level="INFO" doc:name="Main Flow"/>
    </flow>
</mule>