Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java、FTP和多用户_Java_Design Patterns_Ftp_Ftp Client_Spring Jms - Fatal编程技术网

Java、FTP和多用户

Java、FTP和多用户,java,design-patterns,ftp,ftp-client,spring-jms,Java,Design Patterns,Ftp,Ftp Client,Spring Jms,FTPClient有没有办法获得特定ftp服务器允许的同时连接数?以及任何时候可用的连接数 我的问题如下 我有一个队列,消费者将从中读取数据并创建文件。目前,队列有3个使用者(SpringJMS并发使用者),但这个数字将增加,并且将添加更多侦听队列的服务器 当我将消费者更新为100时,会出现连接失败的错误。 任何人都可以推荐一种设计模式或库,允许任意数量的使用者通过ftp传输到特定的服务器。例如,如果有100个文件和100个使用者,如果每个使用者可以ftp 1个文件或一些使用者可以ftp 10个

FTPClient有没有办法获得特定ftp服务器允许的同时连接数?以及任何时候可用的连接数

我的问题如下 我有一个队列,消费者将从中读取数据并创建文件。目前,队列有3个使用者(SpringJMS并发使用者),但这个数字将增加,并且将添加更多侦听队列的服务器

当我将消费者更新为100时,会出现连接失败的错误。 任何人都可以推荐一种设计模式或库,允许任意数量的使用者通过ftp传输到特定的服务器。例如,如果有100个文件和100个使用者,如果每个使用者可以ftp 1个文件或一些使用者可以ftp 10个文件等,这将是理想的方法。我想在多个使用者和/或服务器之间分配负载

非常感谢您的帮助

谢谢
Damien

如果可以切换到SFTP,Jsch库支持通过单个物理连接打开多个通道

否则,您可以实现一个FTP客户端池,并在没有可用客户端时阻止使用者。当使用者完成其操作时,将客户端返回池并唤醒所有等待的线程。您可能只需要一个简单的
阻塞队列

不过,大多数服务器都会超时空闲连接,因此从池中获取连接时必须处理断开的连接


最后,如果您使用Spring集成而不是滚动自己的,FTP出站通道适配器可以配置为使用
CachingSessionFactory
,它为您处理池。

感谢您的响应。。我会看看Jsch谢谢。BlockingQueue可以工作,但是如果有多台服务器正在从队列中读取数据,我认为这不是正确的选择。如果是,那么您可以通过这种方式限制每个服务器的连接。是的,gary,但是这是最佳选择吗?如果ftp服务器允许10个连接,我们能否以智能的方式告诉每个服务器允许多少个连接?理想情况下,新服务器应该能够在不知道任何其他服务器的情况下启动