ftp連線池的實現

2021-10-07 04:33:53 字數 1469 閱讀 1661

類似資料庫連線,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 個數。...