使用flow-ref私有流来引用另一个流或在请求 - 响应样式中使用vm端点有什么区别?
他们都有自己的处理,线程和异常策略?有什么好处或规则何时使用一个而不是另一个?
答案 0 :(得分:8)
来自 Mule In Action 2nd ed :在Mule3之前,许多VM端点用于将服务绑定在一起。但是,从Mule 3开始,另一种共享流的选项称为private flows
。
私有流是另一种可重用的流,非常类似于子流但是 在线程和异常处理方面具有非常不同的行为。该 使用私有流而不是子流的主要原因是在其中定义a 不同的异常策略而不是来自调用流程(事情就是这样) 不可能有子流程。)
当调用sub-flow
时,执行的行为就像子流的消息处理器实际位于
呼唤流量。使用私有流,执行的行为就像传递了消息一样
从呼叫流程到私人流程。这种解耦允许定义
私有流本地的处理和错误处理策略。
我认为private-flow
是处理请求 - 响应而不使用vm端点的新方法,并为re-usability
提供了sub-flow
加上exception-handling
和{{ 1}}
答案 1 :(得分:7)
主要区别是:
答案 2 :(得分:0)
异步流是一种流,默认情况下(但不一定)是异步执行的,VM是基于队列的传输。
您可能意味着通过flow-ref调用异步流或通过VM队列执行异步流程之间的区别。
flow-ref将传递相同的事件和消息进行处理。如果流是异步的,那么默认情况下会在不同的线程上发生,而Mule会复制事件以防止线程之间的干扰。在某些情况下(例如,存在活动事务),尽管流程配置,Mule可能会选择同步执行。所有这些都发生在内存中,这意味着如果服务器崩溃,您可能会丢失消息。
VM是一种传输,这意味着每个流都将获得相同事件但不同消息的副本。发件人的所有出站属性都将成为接收者的入站属性。同步性不取决于流的配置,而是取决于所选的交换模式。此外,您可以将VM配置为使用持久性队列和事务,这将确保正确使用时消息丢失。