我需要在 mule 流中实现 SEDA 类型的端点。谁能告诉我一些链接或示例来做到这一点。我有大量数据需要拆分并调用在不同线程中执行拆分数据的流。
问问题
1097 次
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 回答