NiFi | FlowFile内存依赖性

Sha*_*shi 1 apache-nifi

我正在尝试了解NiFi数据流机制。我读到Nifi有一个流文件,其中包含内容和元数据(流文件属性)。

因此,我想了解是否在边缘节点上放置了1 TB的数据,并希望将其传递给Nifi处理器,这是否会将所有内容加载到内存中以供处理器使用?

api*_*iri 5

FlowFiles(在此称为FF)类似于HTTP数据,因为它们由您突出显示的内容和属性(元数据)组成。但是,在NiFi框架中处理这些内容的方式是元数据驻留在内存中(每个连接最多配置的限制),而FF的内容部分实际上是指向磁盘上内容的指针。也就是说,一旦将内容接收到NiFi中,便不再需要在任何时间将其保存在内存中按引用传递”方法,使NiFi可以处理任意大文件。内存中唯一存储的是FF的元数据,可将其配置为限制每个连接的数量。

当处理器需要进行更改时,它会在写入时执行复制方法进行修改。

通常,处理器使用流传输方法来向/从内容存储库读取/写入数据。为此,所包含的处理器避免将FF的全部内容存储在内存中,因为这可能会令人望而却步。简单路由和移动任意大文件的数据应该没问题;避免对堆内存施加过多压力。当查看对此类文件进行的转换/修改时,答案是通常可以,但是取决于数据类型的细节。