使用Akka Streams通过SFTP传输文件

时间:2018-04-02 11:28:34

标签: scala akka sftp jsch akka-stream

我目前在我的scala-akka代码中使用Jsch库(http://www.jcraft.com/jsch/)从远程SFTP服务器下载一些文件。 根据文件的大小,下载文件大约需要1-10分钟。因此,在此期间,其中一个线程被阻塞,直到文件下载完成。

我正在研究Akka Streams并想知道它是否是更好的选择,是否可以将其与现有的基于纯Jsch的SFTP文件下载代码集成?

2 个答案:

答案 0 :(得分:4)

Alpakka,建立在Akka Streams上,有FTP connector可用于连接SFTP服务器。这是否是比当前方法更好的选择,只有您可以确定,但如果您想使用Akka Streams的优点与SFTP服务器进行交互,那么前面提到的Alpakka连接器就是您的选择。

答案 1 :(得分:1)

你可以使用Alpakka作为chunjef建议但是我相信这里的问题是被阻止的线程。为此,我建议使用特定的阻止io调度程序。您可以查看Akka文档(https://doc.akka.io/docs/akka/2.5/dispatchers.html#problem-blocking-on-default-dispatcher)以了解其含义和解决方案。

我相信无论你是否使用Akka Streams,你都会遇到同样的问题。