我们每天尝试从数据库中获取数百万条记录并在 ERP 系统中处理,我们面临性能问题,社区中是否有解决方案?
在 mule 中处理记录的最佳方法是什么?那么我们应该使用批处理还是有任何替代方法?如果我们使用批处理或任何其他解决方案,我们如何使用它以免遇到任何性能问题?
我们每天尝试从数据库中获取数百万条记录并在 ERP 系统中处理,我们面临性能问题,社区中是否有解决方案?
在 mule 中处理记录的最佳方法是什么?那么我们应该使用批处理还是有任何替代方法?如果我们使用批处理或任何其他解决方案,我们如何使用它以免遇到任何性能问题?
由于我们没有关于您的具体情况的详细信息,因此这里有一些一般性的想法。在处理大型数据集时,您肯定需要进行性能测试,以确保您的流程设计表现良好。
澄清一下,我在下面提供了显示流的选项,这些选项的性能稍差,但允许您处理大型数据集。如果您可以处理内存中的数据集并且想要更快的处理速度,请关闭流式传输。
批处理听起来像您想要做的。对于每个批处理步骤,Mule 创建一个批处理作业实例,每个实例都包含一个带有批处理记录的持久队列。但是,它对 MuleEvent 进行了深层复制,其中包含流变量、流构造、消息、处理时间、会话和交换模式,因此请注意,确保在进入批处理作业之前保持少量足迹。如果您必须设置具有数百万条记录的有效负载来流变量进行一些操作,请确保在开始执行批处理之前删除它们。它将这些批处理步骤加载到内存中并同时执行它们,因此您需要的内存量将是批处理作业实例(特别是 MuleEvent)的大小乘以批处理步骤的数量。