0

我需要在 mule 流中实现 SEDA 类型的端点。谁能告诉我一些链接或示例来做到这一点。我有大量数据需要拆分并调用在不同线程中执行拆分数据的流。

4

3 回答 3

2

如果您没有在流程中将处理策略标记为同步,则默认情况下将使用该策略。

http://www.mulesoft.org/documentation/display/current/Tuning+Performance

于 2013-11-14T16:15:03.987 回答
0

您还可以将 flow-ref 包装在异步范围内。这样,主流程仍然可以同步,您可以在单独的异步线程中调用批处理,如果您将应用程序部署到 Mule 集群(或使用多个 CloudHub 工作人员部署应用程序),该线程可以使用多个工作人员.

于 2016-06-09T23:38:22.650 回答
0

您可以在流程中使用队列异步处理策略。参考: http: //www.mulesoft.org/documentation/display/current/Flow+Processing+Strategies#FlowProcessingStrategies-TheQueued-AsynchronousFlowProcessingStrategySimple

SEDA 上的示例:-

<jms:activemq-connector numberOfConcurrentTransactedReceivers="20" name="Active_MQ" numberOfConsumers="15" brokerURL="tcp://localhost:61616" doc:name="Active MQ">
    <receiver-threading-profile maxThreadsActive="15"/> <!-- for inbound -->
    <dispatcher-threading-profile maxThreadsActive="15"/> <!-- for outbound -->
</jms:activemq-connector>


    <flow name="JMSSender" doc:name="JMSSender" processingStrategy="queued-asynchronous">
        <http:inbound-endpoint  host="localhost" port="8081" path="jms" doc:name="HTTP" exchange-pattern="one-way"/>
        <set-payload value="Test Payload for SEDA model" doc:name="Set Payload"/>
        <logger message="Payload :- #[message.payload]" level="INFO" doc:name="Logger"/>
        <jms:outbound-endpoint queue="MyQueue" connector-ref="Active_MQ" doc:name="JMS"/>
    </flow>


    <flow name="JMSReceiver" doc:name="JMSReceiver" processingStrategy="queued-asynchronous">
    <jms:inbound-endpoint connector-ref="Active_MQ"  doc:name="JMS"  address="jms://tcp:MyQueue"/>
       <!-- other message proccessor -->
    <logger level="INFO" message="Received Payload :-#[message.payload]" doc:name="Logger"/>
    </flow>       
于 2015-07-23T06:14:42.390 回答