我们实际上正在研究NiFi的内容存储库归档的工作方式。
我们从以下网页获得了信息:https://community.hortonworks.com/articles/82308/understanding-how-nifis-content-repository-archivi.html
不幸的是,我们仍然有问题,我需要一些帮助以获取他们的答案:
到目前为止,已启用存档机制。
然后,我需要调整参数以适合我的使用情况:我们将NIFI用于单个用例,估计目标吞吐量为50000 msg / s。
我们有3个节点=>每个节点每个节点的处理速度接近17000 msg / s
每条消息的大小约为810字节。在“记录”类型处理器的帮助下,我们在工作流程的早期就构建了由1000条消息组成的流文件。
因此,每个流文件的大小为810 KB。
每个节点17000 msg / s =每个节点17个流文件/ s =每个节点近14 Mo / s。
我们知道我们需要更改以下参数:
nifi.content.claim.max.appendable.size = 10 MB(默认值) nifi.content.claim.max.flow.files = 100(默认值)
但是我的问题是:用例的最佳价值是什么?有没有办法确定正确的值?计算它们?
我有一个感觉,如果我设置低的值,将会有更多的I / O。 如果我设置更高的值,则数据将驻留在NIFI中的队列中,等待内容声明填满。因此,内存使用量(也许是交换)将增加...
答案 0 :(得分:1)
如果内容库中的内容声明不再有引用该文件的文件,则该内容声明可以删除。您可以想到Java垃圾回收之类的清理过程,它会定期从堆中删除不再被主动引用的内容。
如果启用了存档,则它将存档内容声明,以便保留数据供以后使用,例如查看指向旧内容的出处事件。它将根据nifi.properties中的设置保留。禁用归档后,将立即删除内容声明。
https://nifi.apache.org/docs/nifi-docs/html/nifi-in-depth.html