如何为Data Weave-D Zone集成进行内存管理

330 阅读3分钟

本文解释了如何执行内存管理以有效运行更大的MuleSoft ......

关于

本文将介绍如何执行内存管理,以便有效地运行更大的MuleSoft Data Weave脚本。我试图创建有用的图像来解释Data Weave内存管理是如何工作的。

简介

Data Weave是一个强大的专有数据转换引擎/tool由MuleSoft构建。

MuleSoft平台使用Data Weave引擎将一种或多种不同类型的输入数据编织在一起,以创建另一种输出数据格式。

img

从4. x版本开始,MuleSoft扩展了它的支持,并开始在大多数消息处理器中使用Data Weave脚本。

MuleSoft强烈建议在构建Mule集成流时使用Data Weave脚本。

因此,在处理大型有效载荷和执行数据转换时,非常需要编写高效的数据编织脚本。

当使用Data Weave执行大输入数据处理时,我们可能会遇到内存错误。

在这些情况下,我们可能需要对内存使用进行一些微调。

为了处理输入负载,Data Weave必须将数据保存在小的/large文件中,无论是内存中还是磁盘空间中。

较小的临时文件在内存中管理。如果这些临时文件大小增加,我们可能需要使用磁盘空间。

img

深潜

要执行数据转换,Data Weave需要有一个临时空间来保存输入和输出有效载荷。在执行较小的数据转换时,Data Weave将输入/output缓冲区文件保存在内存中。但是为了处理较大的数据转换,Data Weave引擎可能需要使用磁盘空间。

img

根据输入负载大小,Data Weave引擎必须管理较小的缓冲区文件或较大的缓冲区文件。

较小的缓冲区文件可以通过使用内存存储(RAM)来管理。

为了管理较大的缓冲区文件,我们可能需要使用磁盘空间。

img

磁盘空间可以进一步归类为临时磁盘空间或自定义目录。

默认情况下,较大的缓冲区文件被写入临时磁盘空间。但是,我们可以自定义它,将这些较大的缓冲区文件写入指定的自定义目录。

堆外内存

在我们进一步讨论之前,让我们尝试更多地讨论堆外内存。

img

默认情况下,较小的缓冲区文件被写入堆外内存空间,该内存空间不由垃圾收集器(GC)管理。但是,我们可以将MuleSoft配置为使用堆上内存空间,该内存空间由垃圾收集器(GC)管理。

堆外内存空间由插槽组成。

默认情况下,Data Weave使用大小为60的内存池插槽。但这些参数可以进一步配置。

一旦缓冲区文件的大小超过了可配置的阈值,则将这些文件写入临时磁盘空间。

如果需要,可以通过指定系统属性将这些文件写入自定义目录java.io.tmpdir.

输入缓冲区文件

输出缓冲区文件

索引缓冲区文件

内存管理

结论;结论