類似資料庫連線,ftp連線也是乙個比較浪費時間的連線,為了高效快速獲取連線,對連線數量和資源進行有效管理,引入了連線池比較合理。
引入上述的jar包後,手動配置下面幾步就可以使用了。
使用步驟
ftp.host=******
ftp.port=***
ftp.username=***x
ftp.password=***x
ftp.encoding=utf-8
ftp.passivemode=true
ftp.clienttimeout=30000
ftp.buffersize=1024
ftp.transferfiletype=2
ftp.maxidle=62
ftp.maxtotal=93
ftp.maxwaitmillis=1000
ftp.initidle=10
2.配置ftp-config.xml
<?xml version="1.0" encoding="utf-8"?>
3.配置ftpconfig讀取xml
import org.apache.commons.net.ftp.ftpclient;
import org.apache.log4j.logmanager;
import org.apache.log4j.logger;
import org.springframework.context.annotation.configuration;
import org.springframework.context.annotation.importresource;
import org.springframework.stereotype.component;
import com.yueli.ftppool.ftp.ftpmanager;
@configuration
@importresource("classpath:ftp-config.xml")
@component
public class ftpconfig
return ftpclient;
} /**
* 釋放ftpclient
*/public void releaseftpclient(ftpclient ftpclient)
ftpmanager.releaseftpclient(ftpclient); }
}
4.再要使用的地方注入下面這句,就可以獲取ftp釋放ftp連線。如果自己重寫操作ftp的方法,獲取到連線操作完相關業務後需要手動呼叫releaseftpclient釋放,如果直接呼叫ftputils中的方法可不用再手動釋放,釋放**已經封裝在方法內了。
@autowired
private ftpconfig ftpconfig;
ftp連線池實現
專案中需要用到ftp,經常性的開關會造成極大的開銷,效率比較低。就想封裝乙個ftp連線池,不過遺憾的是沒有找到現成的,只得根據別人提供的思路來實現了。建立若干個ftp連線,然後將這些連線放入阻塞佇列blockingqueue中,每次使用時從佇列中獲取乙個連線,使用完成後將連線重新插入佇列中。實現 o...
連線池的實現
工程架構中有很多訪問下游的需求,下游包括但不限於服務 資料庫 快取,其通訊步驟為 1 與下游建立乙個連線 2 通過這個連線,收發請求 3 互動結束,關閉連線,釋放資源 當併發量很低的時候,建立連線和關閉連線的過程是沒問題的,但當服務單機qps達到幾百 幾千的時候,建立連線和銷毀連線就會成為瓶頸,此時...
JDBC連線池實現
jdbc connection pool 的注意事項有 1.有乙個簡單的函式從連線池中得到乙個 connection。2.close 函式必須將 connection 放回 資料庫連線池。3.當資料庫連線池中沒有空閒的 connection,資料庫連線池必須能夠自動增加 connection 個數。...