Mule 4 Async 与 VM Scope,哪个更适合用于异步处理流程?

Mule 4 Async vs VM Scope, which is more preferred to use for processing flow asynchronously?

据我所知,它们都在 VM 范围内异步处理流程,在创建新上下文、分离属性和变量时使用更多资源。如果仅用于异步处理流程,是否还有其他特殊原因?

Async 是一个范围,如果有可用资源(即线程),则立即与流程并行执行。 VM 是一个实现内存中队列的连接器。我通常建议更喜欢使用 VM 连接器,因为使用 Async 如果没有可用线程,它可能无法执行。使用 VM 连接器,消息将排队,直到从 VM 队列读取的流能够读取下一条消息。请注意,如果排队的消息数大于已处理的消息数,它将 运行 内存不足或超出队列分配,从而导致另一个错误。

永远记住,线程是一种有限的资源。在 Mule 中,无法控制使用的线程数,只能控制并发性。还要记住,线程不是免费的,它们会消耗内存和 CPU.