Variável de fluxo de mule versus desempenho de variável de sessão
-
20-12-2019 - |
Pergunta
Além das diferenças de funcionalidade entre a variável de fluxo e a variável de sessão, conforme descrito na página Mulesoft, há alguma diferença significativa de desempenho a ser observada ao usar as duas?
Para o meu projeto, usar variáveis de fluxo e sessão funciona perfeitamente bem.Portanto, preciso decidir qual usar.
Solução
As variáveis de sessão são constantemente serializadas e desserializadas quando as mensagens cruzam as fronteiras de transporte.
Mas, você está dizendo que você pode usar variáveis de fluxo ou sessão de forma intercambiável em seu projeto, então significa que você não tem nenhum limite de transporte (caso contrário, você perderia as variáveis de fluxo).
Nesse caso, ambas as variáveis de fluxo e sessão executam o mesmo: são apenas propriedades do evento.
Observe que as variáveis da sessão tendem a vazar por meio de endpoints http, então tenha cuidado com o uso.
Outras dicas
<?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>