- 論壇徽章:
- 0
|
本帖最后由 zhanghua1199 于 2012-12-25 12:11 編輯
fdfs--java--v1.0連接池.zip
(21.79 KB, 下載次數(shù): 488)
2012-12-25 12:09 上傳
點(diǎn)擊文件名下載附件
連接池
這是以前的版本說(shuō)明,可以參考一下。
因?yàn)闃I(yè)務(wù)場(chǎng)景web管理平臺(tái)上傳文件,但由于使用fastdfs java api得到的連接并不支持多線程,但也不能每次申請(qǐng)一個(gè)接連之后就關(guān)閉(浪費(fèi)資源)。故需要一個(gè)連接池來(lái)提高操作文件效率
以下是我看fastdfs java api源代碼的時(shí)候總結(jié)出來(lái)的一點(diǎn)小東東,能明白就明白,不明白也行(寫的比較亂)。
使用storageClient上傳文件時(shí),如果storageServer為null,則程序自動(dòng)
創(chuàng)建trackerServer,根據(jù)trackerServer得到storageServer,并返回storageServer
,在返回storageServer之前會(huì)關(guān)閉trackerServer。通過(guò)storageServer上傳完文件
之后,關(guān)閉storageServer.
反之storageServer不為null則不會(huì)被關(guān)閉。
按這個(gè)邏輯,創(chuàng)建完storageClient,storageServer,則trackerServer就可以關(guān)閉了。
其實(shí)不然,這樣得到的storageClient上傳文件只會(huì)上傳到storageServer所指向的主機(jī),比方說(shuō),
現(xiàn)有a,b兩臺(tái)主機(jī),程序獲得的storageServer只指向a.以后使用storageclient上傳的文件都會(huì)
上傳到a的storage,并不會(huì)上傳b的storage.這樣導(dǎo)致不平衡
正常做法建議:trackerServer可以創(chuàng)建連接池,storageServer每次上傳文件都重新創(chuàng)建一個(gè)。
目前發(fā)表這個(gè)是更新版,修改了幾個(gè)bug,和增加了點(diǎn)功能。
1、本連接池是個(gè)人所寫,公司內(nèi)部在用()。
2、目前接口只提供了上傳和刪除操作,其它操作需要自己增加。
連接池代碼更新版,新增以下參數(shù)
size--->連接池大小。默認(rèn)2個(gè)
waitTimes --->等待超時(shí),默認(rèn)兩秒,單位為秒
其它不變。一般構(gòu)造形式如下:
只帶域名
ImageServer ims=new ImageServerImpl("imageserver.com");
帶有端口形式如下:
ImageServer ims=new ImageServerImpl("imageserver.com",22122);
帶有連接池大小構(gòu)造如下:
ImageServer ims=new ImageServerImpl("imageserver.com",22122,5);
設(shè)置等待超時(shí):
ims.setWaitTimes( 5 ); //五秒
3、支持當(dāng)管理平臺(tái)的使用連接池與fdfs連接,當(dāng)fdfs宕機(jī),重啟后,管理平臺(tái)無(wú)需重啟,連接自動(dòng)建立。 |
|