关于基于mina的ftpserver的性能问题

本文深入分析了 Apache FTPServer 使用 Mina 框架实现 FTP 服务时,关于异步非阻塞 I/O 的误解与实际表现之间的差异。讨论了在接收文件操作中,FTPServer 处理并发请求的能力受限于线程池大小的问题,以及这一设计对性能的影响。文章还提到,尽管 Apache FTPServer 在底层提供了强大的功能,但正确的配置与理解其内部机制对于实现高效、稳定的文件传输服务至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中使用到apache的ftpserver,一直以为基于mina的它是异步非阻塞IO的,结果看了源码
发现,接收是这么写的

while (true) {
从流中读
写文件
}
}}


真是太失望了,这样一来,ftpserver处理客户请求的数据就取决于那个ExectorFilter中的线程池大小了,ftpserver用的是OrderExectorFilter的无参构造函数,默认池的最大值是16了。要是同时接收16个大文件的话,就没有能力处理新请求了,注意NioListener还是能够处理监听的,因为它跟ioserver用的不是一个线程池(我猜的)。只是socket连上后,就处在持续等待的状态,任你新来的ftp command是啥,都不处理。直到有一个大文件传输完成,腾出一个可用线程。


我觉得要整个基于mina的应用出来,怎么着您也得使用一下这个框架的特性,啥异步io呀,高性能呀,结果搞出这么个东东。当然apache还是NB的,我自己做不出来,只能用人家的,发发牢骚罢了,各位尽量拍,哈哈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值