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