Ftp NiFi-putfp没有效率

Ftp NiFi-putfp没有效率,ftp,apache-nifi,Ftp,Apache Nifi,我有一个nifi流,使用putFTP处理器每分钟发送50多个文件。服务器资源有限,但我需要加快发送速度。我查看了ftp服务器日志(不是nifi),得出了以下结论: 为每个文件创建一个新的ftp连接(会话)。是否有在一个会话中配置多个文件的选项?(连接到端口21,进行一次身份验证,然后在不同端口上发送多个文件) 发送一个文件时,会发送多个CWD(更改工作目录)命令。例如,将文件发送到/myfiles/test/dest/file.txt: CWD/ CWD/myfiles CWD/ CWD/m

我有一个nifi流,使用putFTP处理器每分钟发送50多个文件。服务器资源有限,但我需要加快发送速度。我查看了ftp服务器日志(不是nifi),得出了以下结论:

  • 为每个文件创建一个新的ftp连接(会话)。是否有在一个会话中配置多个文件的选项?(连接到端口21,进行一次身份验证,然后在不同端口上发送多个文件)
  • 发送一个文件时,会发送多个CWD(更改工作目录)命令。例如,将文件发送到/myfiles/test/dest/file.txt:

    • CWD/
    • CWD/myfiles
    • CWD/
    • CWD/myfiles/test
    • CWD/
    • CWD/myfiles/test/dest
这是没有效率的。有什么方法可以改进PUTFP吗?这是虫子吗

第一个问题:使用运行持续时间 为每个文件创建一个新的ftp连接(会话)。有没有 在一个会话中配置多个文件的选项?(连接到端口21, 验证一次,然后在不同端口上发送多个文件)

首先,(如果它适合您的用例),您可以使用处理器将多个(较小的)流文件合并为一个(较大的)流文件,并将其提供给PutFTP

其次,处理器具有支持批处理注释:

处理器实现可以使用的标记注释来指示 用户应该能够为处理器提供批处理持续时间。如果 处理器使用此注释,它允许框架 批处理会话的提交,以及允许框架 多次返回同一ProcessSession

资料来源:

增加PutFTP处理器的运行持续时间,提高吞吐量,以便对多个流文件使用相同的任务。您可能需要调整“属性”选项卡中的
最大批次大小
,以适应该更改

请在此处阅读更多信息:

第二个问题:检查源代码 当发送一个文件时,许多CWD(更改工作目录)命令 他们被派去了。例如,将文件发送到/myfiles/test/dest/file.txt

通过检查,您可以看到put方法执行以下操作:

  • 放置->获取客户端
  • 放置->获取客户端->重置工作目录->更改工作目录(homeDirectory)
  • put->setAndGetWorkingDirectory
这可能就是你发现的行为