Concurrency 具有重用和并发性的子流
我正在为我的一个USCASE准备解决方案。 我的解决方案在抽象上可能是这样的 我这里的问题是,当两个主流当前调用相同的子流时, 它能正常工作吗 我还需要为所有用作线程的类编写线程安全的代码吗 子流中的自定义组件/转换器 我的抽象配置如下所示Concurrency 具有重用和并发性的子流,concurrency,mule,reusability,flow,Concurrency,Mule,Reusability,Flow,我正在为我的一个USCASE准备解决方案。 我的解决方案在抽象上可能是这样的 我这里的问题是,当两个主流当前调用相同的子流时, 它能正常工作吗 我还需要为所有用作线程的类编写线程安全的代码吗 子流中的自定义组件/转换器 我的抽象配置如下所示 <flow name="mainflow_1" > <inbound-endpoint/> <transformer ....> <component ....> <
<flow name="mainflow_1" >
<inbound-endpoint/>
<transformer ....>
<component ....>
<flow-ref name="subflow_1"></flow-ref>
<transformer ....>
<component ...>
<outbound-endpoint ....>
</flow>
<flow name="mainflow_2" >
<inbound-endpoint type="request-response" />
<transformer ....>
<component ....>
<flow-ref name="subflow_1"></flow-ref>
<transformer ....>
<component ...>
</flow>
<sub-flow name="subflow_1" >
<transformer ....>
<component ....>
<outbound-endpoint call to some service >
<transformer ....>
<component ...>
</sub-flow>
请指导我。子流的行为类似于宏:从执行角度看,就好像子流的元素被复制到调用流中一样 因此,调用流的线程行为将决定子流的线程行为 无论它们是在子流中使用还是在主流中使用,如果您使用组件类的单实例(常见用例),那么您应该将组件类编写为线程安全的。如果使用原型实例(每个请求创建一个实例)或池实例(实例数量有限,线程瓶颈),则组件类可能是线程不安全的
根据经验,尽可能多地争取线程安全的无状态组件类,以避免将来的潜在优化痛苦。子流的行为类似于宏:从执行角度看,就好像子流的元素被复制到调用流中一样 因此,调用流的线程行为将决定子流的线程行为 无论它们是在子流中使用还是在主流中使用,如果您使用组件类的单实例(常见用例),那么您应该将组件类编写为线程安全的。如果使用原型实例(每个请求创建一个实例)或池实例(实例数量有限,线程瓶颈),则组件类可能是线程不安全的 根据经验,尽可能多地争取线程安全的无状态组件类,以避免将来的潜在优化痛苦