[發(fā)明專利]一種在ftp服務(wù)場(chǎng)景下高效讀取大量小文件的方法在審
| 申請(qǐng)?zhí)枺?/td> | 202011616639.4 | 申請(qǐng)日: | 2020-12-30 |
| 公開(kāi)(公告)號(hào): | CN112732657A | 公開(kāi)(公告)日: | 2021-04-30 |
| 發(fā)明(設(shè)計(jì))人: | 張?zhí)祀H;李繼征;陳康先;陳偉健 | 申請(qǐng)(專利權(quán))人: | 廣州金越軟件技術(shù)有限公司 |
| 主分類號(hào): | G06F16/17 | 分類號(hào): | G06F16/17;G06F16/13;H04L29/06 |
| 代理公司: | 暫無(wú)信息 | 代理人: | 暫無(wú)信息 |
| 地址: | 510000 廣東省廣州*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 ftp 服務(wù) 場(chǎng)景 高效 讀取 大量 文件 方法 | ||
本發(fā)明公開(kāi)了一種在ftp服務(wù)場(chǎng)景下高效讀取大量小文件的方法,包括交互本地化和本地文件監(jiān)聽(tīng),所述交互本地化,在不改變前端輸入的參數(shù)情況,方法得到的入?yún)⑹莊tp協(xié)議的url,適用設(shè)計(jì)模式中的策略模式適配各種ftp服務(wù)器,目的為了提高在頻繁創(chuàng)建的大量的小文件的監(jiān)聽(tīng)邏輯效率,旨在提高跨網(wǎng)絡(luò)服務(wù)交換的性能。
技術(shù)領(lǐng)域
本發(fā)明涉及跨網(wǎng)服務(wù)交換領(lǐng)域,具體是一種在ftp服務(wù)場(chǎng)景下高效讀取大量小文件的方法。
背景技術(shù)
跨網(wǎng)服務(wù)交換場(chǎng)景需要生成大量小文件,借助單向光閘的文件擺渡功能交換到對(duì)端網(wǎng)絡(luò),再做處理。目前軟件應(yīng)用在文件監(jiān)聽(tīng)采用的方法大多是兩種,
第一種:通過(guò)ftp協(xié)議,使用MLST命令輪詢獲取文件列表信息,信息包含一個(gè)標(biāo)準(zhǔn)UTC格式的文件修改時(shí)間,應(yīng)用可利用此時(shí)間來(lái)判斷前后時(shí)間間隔的時(shí)間是否一樣來(lái)判斷文件寫(xiě)完成(寫(xiě)完即可判斷為完整),此方法造成效率低下的原因是需要多次判斷前后時(shí)間。且MLST命令不是所有ftp服務(wù)都支持,業(yè)界常用的vsftp就不支持。
第二種:通過(guò)ftp協(xié)議,使用LIST命令輪詢獲取文件列表信息,由于返回文件的時(shí)間戳屬性是基于服務(wù)器的時(shí)區(qū),它使得在FTP對(duì)目錄和文件同步時(shí)有許多的不同,因?yàn)闆](méi)有方法獲得服務(wù)器上當(dāng)前文件的時(shí)間戳,所以只能采用記錄文件在一段時(shí)間內(nèi)的大小,以它在一段時(shí)間內(nèi)不再改變?yōu)橐罁?jù)判斷文件的完整性,這樣的方法效率低下。
但是,目前采用走ftp協(xié)議+輪詢的方式來(lái)判斷,走ftp協(xié)議會(huì)造成大量網(wǎng)絡(luò)交互,受網(wǎng)絡(luò)因素影響,性能損耗大。使用輪詢的方法來(lái)發(fā)現(xiàn)文件和判斷文件,造成大部分文件處理不及時(shí)。使用用MLST命令存在局限性,此方法不能很好兼容各種ftp服務(wù)。因此,本領(lǐng)域技術(shù)人員提供了一種在ftp服務(wù)場(chǎng)景下高效讀取大量小文件的方法,以解決上述背景技術(shù)中提出的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種在ftp服務(wù)場(chǎng)景下高效讀取大量小文件的方法,以解決上述背景技術(shù)中提出的問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種在ftp服務(wù)場(chǎng)景下高效讀取大量小文件的方法,包括交互本地化和本地文件監(jiān)聽(tīng),所述交互本地化,在不改變前端輸入的參數(shù)情況,方法得到的入?yún)⑹莊tp協(xié)議的url,適用設(shè)計(jì)模式中的策略模式適配各種ftp服務(wù)器;
具體邏輯為:將ftp協(xié)議url解析出用戶名,端口,推送目錄。根據(jù)端口獲取進(jìn)程名,從而可以判斷出ftp服務(wù)器類型,或者根據(jù)各種ftp服務(wù)器的配置文件名、其他特征來(lái)判斷ftp服務(wù)器類型,然后讀取配置文件,獲取ftp用戶與本地目錄的映射關(guān)系,并緩存到Map集合。整個(gè)轉(zhuǎn)化過(guò)程不需要由調(diào)用邏輯關(guān)注,完全由本方法自動(dòng)適配。
作為本發(fā)明進(jìn)一步的方案:所述本地文件監(jiān)聽(tīng)利用jdk1.7自帶的文件事件監(jiān)聽(tīng)WatchService,配置監(jiān)聽(tīng)實(shí)體的創(chuàng)建和修改事件,阻塞獲取監(jiān)聽(tīng)器事件隊(duì)列的事件。
作為本發(fā)明再進(jìn)一步的方案:所述事件出列后解析出文件名,再實(shí)例化為自定義的文件事件對(duì)象,對(duì)象屬性包含文件File對(duì)象,文件創(chuàng)建時(shí)間戳,文件修改時(shí)間戳,當(dāng)前文件字節(jié)長(zhǎng)度,文件MD5摘要。
作為本發(fā)明再進(jìn)一步的方案:所述事件入列到隊(duì)列中,此處使用業(yè)界性能優(yōu)越的有界無(wú)鎖隊(duì)列實(shí)現(xiàn),此處使用了生產(chǎn)者消費(fèi)者模式,另一線程監(jiān)聽(tīng)隊(duì)列獲取文件事件對(duì)象繼續(xù)處理。
作為本發(fā)明再進(jìn)一步的方案:所述事件出列后先判斷當(dāng)前時(shí)間戳與文件修改時(shí)間戳是否大于某個(gè)時(shí)間,經(jīng)過(guò)大量測(cè)試,基于16核cpu、64G內(nèi)存和網(wǎng)絡(luò)穩(wěn)定的環(huán)境中,此時(shí)間值約為1毫秒為性能最佳。
作為本發(fā)明再進(jìn)一步的方案:所述事件如果不是則再次入列,否則繼續(xù)獲取文件當(dāng)前文件字節(jié)長(zhǎng)度和文件MD5摘要,在對(duì)比前后的字節(jié)長(zhǎng)度和MD5摘要是否相同,如果相同,即判斷為完整,可繼續(xù)后續(xù)處理,否則,更新對(duì)象的修改時(shí)間戳,當(dāng)前文件字節(jié)長(zhǎng)度和文件MD5摘要再次入列。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣州金越軟件技術(shù)有限公司,未經(jīng)廣州金越軟件技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011616639.4/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 服務(wù)票據(jù)發(fā)行系統(tǒng)及服務(wù)票據(jù)發(fā)行服務(wù)
- 出租服務(wù)服務(wù)器和出租服務(wù)系統(tǒng)
- 服務(wù)開(kāi)放方法及系統(tǒng)、服務(wù)開(kāi)放服務(wù)器
- 基于服務(wù)券服務(wù)的在線企業(yè)服務(wù)平臺(tái)
- 退稅服務(wù)系統(tǒng)、退稅服務(wù)平臺(tái)及其服務(wù)方法
- 服務(wù)亭(服務(wù)驛站)
- 公共服務(wù)自助服務(wù)機(jī)
- 服務(wù)提供服務(wù)器、服務(wù)提供系統(tǒng)以及服務(wù)提供方法
- 服務(wù)提供服務(wù)器、服務(wù)提供系統(tǒng)以及服務(wù)提供方法
- 服務(wù)提供服務(wù)器、服務(wù)提供系統(tǒng)以及服務(wù)提供方法
- 電視場(chǎng)景切換的方法及電視
- 視頻場(chǎng)景控制系統(tǒng)及方法
- 場(chǎng)景開(kāi)關(guān)及其場(chǎng)景開(kāi)關(guān)構(gòu)件和場(chǎng)景圖標(biāo)卡組件
- 場(chǎng)景聯(lián)動(dòng)方法及場(chǎng)景聯(lián)動(dòng)系統(tǒng)
- 一種視頻場(chǎng)景分類方法、裝置、移動(dòng)終端及存儲(chǔ)介質(zhì)
- 一種Unity3D引擎的場(chǎng)景切換方法和系統(tǒng)
- 一種自動(dòng)駕駛場(chǎng)景分類識(shí)別系統(tǒng)及方法
- 一種虛擬場(chǎng)景生成方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)
- 一種汽車圖像場(chǎng)景庫(kù)數(shù)據(jù)復(fù)雜度度量方法
- 場(chǎng)景識(shí)別方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





