首页 > 解决方案 > Mule 4中黑白foreach,并行foreach和批处理的主要区别是什么

问题描述

在 Mule 4 中,For-each 按顺序(使用单线程)处理记录,而在 parallel-foreach 和批处理中,我们并行(多线程)处理记录。我想知道实时场景在哪里选择什么?
谁能解释一下实时用例场景,特别是我们必须选择 parallel-foreach 和必须选择 batch 的地方?

标签: mulemule-studiomule-componentmule-esb

解决方案


我不清楚在这个问题的上下文中实时是什么意思。这些功能旨在处理批量数据,而不是服务于单个请求。如果场景中的批次很小,那么可能可以实现某种整体实时处理。

鉴于我认为解决这个问题的最佳方法如下。

1) For Each 和 Parallel For Each (new, 在 Mule 4.2.0 中引入) 非常相似,所以让我们回顾一下它们之间的区别

2)然后给出上面的1)For-each处理与Batch有何不同


上面的第 1 项)在此处的 Mule 文档中得到解决https://docs.mulesoft.com/mule-runtime/4.2/parallel-foreach-scope#differences-between-for-each-and-parallel-for-each-scopes

此处比较了上面第 2) 项的 Batch 和 For Each骡批处理 vs foreach vs splitter-aggregator

简而言之,Batch 提供了最大程度的控制和灵活性,但代价是实现起来更加复杂。For Each 是更多的火和忘记。由于多线程,Parallel For Each 比 vanilla For Each 性能更高,但结果又更复杂,例如错误处理。


推荐阅读