2014-09-29 2 views
2

В чем разница между Subflow и Processor-Chain в Mule?Mule Subflow vs Processor-Chain

Насколько я использовал, оба могут использоваться повторно. Оба делают конфигурацию более читаемой. Оба выполняются синхронно. Оба наследуют стратегию обработки и стратегию исключения из потока запуска.

Цепочка процессора может быть определена как внутри потока, так и для глобального процессора сообщений.

Помимо этого, как они отличаются с точки зрения поведения и использования.

Update: Пример конфигурация с Названным Processor Chain

<flow name="man-flow" > 
     <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="myapp/collection-processor" doc:name="HTTP"> 
      <byte-array-to-string-transformer></byte-array-to-string-transformer> 
     </http:inbound-endpoint> 
     <expression-component doc:name="Expression"><![CDATA[java.util.ArrayList list = new java.util.ArrayList(); 
      list.add("First String"); 
      list.add("Second String"); 
      list.add("Third String"); 
      payload = list;]]>   
     </expression-component> 
     <request-reply> 
      <vm:outbound-endpoint path="split"/> 
      <vm:inbound-endpoint path="processed"/> 
     </request-reply> 
     <set-payload value="#[payload.toString()]"/> 
    </flow> 

    <processor-chain name="sample-processor-chain"> 
     <append-string-transformer message=" in splitter" /> 
     <append-string-transformer message=" in processor-chain" /> 
    </processor-chain> 

    <flow name="splitter-flow"> 
     <vm:inbound-endpoint path="split"/> 
     <collection-splitter enableCorrelation="IF_NOT_SET"/> 
     <processor ref="sample-processor-chain"></processor> 
     <vm:outbound-endpoint path="aggregate"/>  
    </flow> 

    <flow name="aggregator-flow"> 
     <vm:inbound-endpoint path="aggregate"/> 
     <collection-aggregator timeout="30000"/>   
     <vm:outbound-endpoint path="processed"/> 
    </flow> 

ответ

3

processor-chain была создана для решения проблемы некоторых процессоров сообщений не может иметь более одного вложенный процессора. Идея, лежащая в основе sub-flow, представляет собой макроразложение серии процессоров сообщений. Если вы используете версии латтестов Mule, вы не должны сильно использовать цепочку процессоров, за исключением некоторых действительно старых конструкций. Использование субпотоков позволяет вам иметь гораздо более читаемый код, например, включать повторяющиеся вещи.