文件多路發(fā)送的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種文件多路發(fā)送的方法及裝置。
【背景技術(shù)】
[0002]在網(wǎng)絡(luò)技術(shù)領(lǐng)域,經(jīng)常需要將同一個(gè)文件發(fā)往多個(gè)目的地,即進(jìn)行文件多路轉(zhuǎn)發(fā)?,F(xiàn)有技術(shù)在進(jìn)行文件多路發(fā)送時(shí),是將一個(gè)文件按順序發(fā)送到多個(gè)目的地,例如,有三個(gè)目的地A、B和C時(shí),須先將文件成功發(fā)送到A和B后,才能發(fā)送給C。
[0003]在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)至少存在以下問(wèn)題:
[0004]現(xiàn)有技術(shù)在實(shí)現(xiàn)文件多路發(fā)送的方法時(shí),同一個(gè)文件需要等待成功發(fā)送給前面的目的地,才能進(jìn)行后續(xù)的文件發(fā)送,發(fā)送效率較低;且當(dāng)某個(gè)文件發(fā)送給某個(gè)目的地失敗,如進(jìn)程重啟或機(jī)器重啟時(shí),還需將該文件重新按順序發(fā)送至所有的目的地,在實(shí)現(xiàn)上過(guò)于繁瑣,造成了時(shí)間和資源的浪費(fèi)。
【發(fā)明內(nèi)容】
[0005]為了解決相關(guān)技術(shù)的問(wèn)題,本發(fā)明實(shí)施例提供了一種文件多路發(fā)送的方法及裝置。所述技術(shù)方案如下:
[0006]第一方面,提供了一種文件多路發(fā)送的方法,所述方法包括:
[0007]確定待發(fā)送的目標(biāo)文件信息和多個(gè)目的節(jié)點(diǎn);
[0008]為每個(gè)目的節(jié)點(diǎn)創(chuàng)建至少一個(gè)標(biāo)識(shí)信息,所述至少一個(gè)標(biāo)識(shí)信息用于標(biāo)識(shí)文件發(fā)送不同階段;
[0009]當(dāng)從文件目錄中獲取到所述目標(biāo)文件時(shí),基于所述目標(biāo)文件、所述每個(gè)目的節(jié)點(diǎn)以及每個(gè)目的節(jié)點(diǎn)的標(biāo)識(shí)信息,進(jìn)行文件并行發(fā)送;
[0010]其中,在對(duì)每個(gè)目的節(jié)點(diǎn)的發(fā)送階段中,根據(jù)文件發(fā)送的不同階段,對(duì)所述每個(gè)目的節(jié)點(diǎn)的標(biāo)識(shí)信息進(jìn)行更改。
[0011]第二方面,提供了一種文件多路發(fā)送的裝置,所述裝置包括:
[0012]確定模塊,用于確定待發(fā)送的目標(biāo)文件信息和多個(gè)目的節(jié)點(diǎn);
[0013]創(chuàng)建模塊,用于為每個(gè)目的節(jié)點(diǎn)創(chuàng)建至少一個(gè)標(biāo)識(shí)信息,所述至少一個(gè)標(biāo)識(shí)信息用于標(biāo)識(shí)文件發(fā)送不同階段;
[0014]第一發(fā)送模塊,用于當(dāng)從文件目錄中獲取到所述目標(biāo)文件時(shí),基于所述目標(biāo)文件、所述每個(gè)目的節(jié)點(diǎn)以及每個(gè)目的節(jié)點(diǎn)的標(biāo)識(shí)信息,進(jìn)行文件并行發(fā)送;
[0015]標(biāo)識(shí)信息更改模塊,在對(duì)每個(gè)目的節(jié)點(diǎn)的發(fā)送階段中,根據(jù)文件發(fā)送的不同階段,對(duì)所述每個(gè)目的節(jié)點(diǎn)的標(biāo)識(shí)信息進(jìn)行更改。
[0016]本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是:
[0017]通過(guò)進(jìn)行文件并行發(fā)送,使得目標(biāo)文件發(fā)往多個(gè)目的節(jié)點(diǎn)時(shí),不同目的節(jié)點(diǎn)的發(fā)送階段相互獨(dú)立、互不影響,因此,目標(biāo)文件向某個(gè)目的節(jié)點(diǎn)發(fā)送失敗時(shí),并不影響該目標(biāo)文件發(fā)送到其他目的節(jié)點(diǎn),提高了發(fā)送效率;且當(dāng)目標(biāo)文件發(fā)往某個(gè)目的節(jié)點(diǎn)失敗時(shí),只需對(duì)發(fā)送失敗的目的節(jié)點(diǎn)重新進(jìn)行文件發(fā)送,節(jié)省了時(shí)間和資源。
【附圖說(shuō)明】
[0018]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1是本發(fā)明一實(shí)施例提供的一種文件多路發(fā)送方法的實(shí)施環(huán)境示意圖;
[0020]圖2是本發(fā)明另一實(shí)施例提供的一種文件多路發(fā)送方法流程圖;
[0021]圖3是本發(fā)明另一實(shí)施例提供的一種文件多路發(fā)送方法示意圖;
[0022]圖4是本發(fā)明另一實(shí)施例提供的一種文件多路發(fā)送方法流程圖;
[0023]圖5是本發(fā)明另一實(shí)施例提供的一種文件多路發(fā)送裝置結(jié)構(gòu)示意圖;
[0024]圖6是本發(fā)明另一實(shí)施例提供的一種用于文件多路發(fā)送的服務(wù)器。
【具體實(shí)施方式】
[0025]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0026]圖1是本發(fā)明一實(shí)施例提供的一種文件多路發(fā)送方法的實(shí)施環(huán)境示意圖,參見(jiàn)圖1,該系統(tǒng)可以為一個(gè)文件系統(tǒng),如HDFS(Hadoop Distributed File System,Hadoop分布式文件系統(tǒng))等。該系統(tǒng)可以包括多個(gè)節(jié)點(diǎn),節(jié)點(diǎn)可以為服務(wù)器或客戶端,每個(gè)節(jié)點(diǎn)可執(zhí)行不同功能,如文件接收、文件存儲(chǔ)、文件發(fā)送和數(shù)據(jù)處理等,節(jié)點(diǎn)之間可以互相發(fā)送和接收文件。本發(fā)明實(shí)施例以圖1所示文件系統(tǒng)為例,介紹其中一個(gè)節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送文件的過(guò)程;其中,節(jié)點(diǎn)上包括文件目錄,節(jié)點(diǎn)從其他節(jié)點(diǎn)或文件系統(tǒng)外部接收文件,并存儲(chǔ)于文件目錄中;該文件目錄中包括節(jié)點(diǎn)接收的所有文件和文件信息。
[0027]當(dāng)然,上述系統(tǒng)僅為本發(fā)明實(shí)施例的一個(gè)典型應(yīng)用場(chǎng)景,在實(shí)際實(shí)施時(shí),也可以應(yīng)用于其他需要進(jìn)行文件發(fā)送或數(shù)據(jù)發(fā)送的系統(tǒng)中。
[0028]圖2是本發(fā)明實(shí)施例提供的一種文件多路發(fā)送方法的流程圖。本實(shí)施例提供的文件多路發(fā)送方法的執(zhí)行主體為節(jié)點(diǎn),參見(jiàn)圖2,該方法流程包括:
[0029]201、確定待發(fā)送的目標(biāo)文件信息和多個(gè)目的節(jié)點(diǎn)。
[0030]在本發(fā)明實(shí)施例中,節(jié)點(diǎn)的文件目錄中包括節(jié)點(diǎn)接收的所有文件和文件信息,具體地,文件信息包括文件名稱、文件大小等。
[0031]此外,目的節(jié)點(diǎn)為文件待發(fā)往的服務(wù)器或客戶端,每個(gè)文件可以有多個(gè)目的節(jié)點(diǎn)。具體地,可以是在文件系統(tǒng)中,當(dāng)節(jié)點(diǎn)和目的節(jié)點(diǎn)之間需要進(jìn)行文件同步時(shí),根據(jù)同步需求確定待同步的目的節(jié)點(diǎn);或者是由其他節(jié)點(diǎn)來(lái)提出文件發(fā)送請(qǐng)求時(shí),將提出請(qǐng)求的節(jié)點(diǎn)確定為目的節(jié)點(diǎn);或者是當(dāng)節(jié)點(diǎn)需要向其他節(jié)點(diǎn)推送文件時(shí),將需要推送的節(jié)點(diǎn)確定為目的節(jié)點(diǎn);或者是在接收文件后,如果文件信息中包括文件待發(fā)往的節(jié)點(diǎn),則可以根據(jù)文件信息確定目的節(jié)點(diǎn);當(dāng)然,在實(shí)際應(yīng)用中還可能有其他確定目的節(jié)點(diǎn)的方法,本發(fā)明實(shí)施例對(duì)此不作具體限定。
[0032]在本發(fā)明實(shí)施例中,目標(biāo)文件,即節(jié)點(diǎn)需要發(fā)送往其他節(jié)點(diǎn)的文件,具體地,節(jié)點(diǎn)可以按照文件的接收時(shí)間來(lái)確定目標(biāo)文件,如確定接收時(shí)間最早的文件為目標(biāo)文件;也可以按照發(fā)送需求確定目標(biāo)文件,或隨機(jī)確定目標(biāo)文件,從而確定目標(biāo)文件信息,本發(fā)明實(shí)施例對(duì)此不作具體限定。
[0033]202、為每個(gè)目的節(jié)點(diǎn)創(chuàng)建至少一個(gè)標(biāo)識(shí)信息,該至少一個(gè)標(biāo)識(shí)信息用于標(biāo)識(shí)文件發(fā)送不同階段。
[0034]在本發(fā)明實(shí)施例中,文件發(fā)送不同階段包括準(zhǔn)備階段、實(shí)際發(fā)送階段以及發(fā)送結(jié)果反饋階段。其中,準(zhǔn)備階段為文件的準(zhǔn)備階段,即節(jié)點(diǎn)從文件目錄(active)中獲取目標(biāo)文件,存儲(chǔ)于中間發(fā)送目錄(receive)中,以便針對(duì)該目標(biāo)文件實(shí)現(xiàn)對(duì)多個(gè)目的節(jié)點(diǎn)的發(fā)送;實(shí)際發(fā)送階段,即從中間發(fā)送目錄(receive)中讀取目標(biāo)文件,將其發(fā)送給對(duì)應(yīng)的目的節(jié)點(diǎn);發(fā)送結(jié)果反饋階段,即節(jié)點(diǎn)將文件發(fā)送給目的節(jié)點(diǎn)后,接收由目的節(jié)點(diǎn)反饋的發(fā)送成功消息或發(fā)送失敗消息,并根據(jù)發(fā)送結(jié)果進(jìn)行后續(xù)的文件刪除或重發(fā)。
[0035]在本發(fā)明實(shí)施例中,為了使目標(biāo)文件在發(fā)送過(guò)程中,針對(duì)不同目的節(jié)點(diǎn)的發(fā)送過(guò)程相互獨(dú)立,因此,為每個(gè)目的節(jié)點(diǎn)創(chuàng)建至少一個(gè)標(biāo)識(shí)信息。具體地,為目的節(jié)點(diǎn)創(chuàng)建標(biāo)識(shí)信息,即先創(chuàng)建目的節(jié)點(diǎn)目錄,從而在每個(gè)目的節(jié)點(diǎn)目錄下創(chuàng)建多個(gè)子目錄,該多個(gè)子目錄用于標(biāo)識(shí)文件發(fā)送的不同階段。具體地,多個(gè)子目錄包括發(fā)送判斷子目錄(tag),用于標(biāo)識(shí)準(zhǔn)備階段;發(fā)送準(zhǔn)備子目錄(ready)和發(fā)送觸發(fā)子目錄(sending),用于標(biāo)識(shí)實(shí)際發(fā)送階段;發(fā)送狀態(tài)子目錄(failed),用于標(biāo)識(shí)發(fā)送結(jié)果反饋階段。
[0036]203、當(dāng)從文件目錄中獲取到目標(biāo)文件時(shí),基于目標(biāo)文件、每個(gè)目的節(jié)點(diǎn)以及每個(gè)目的節(jié)點(diǎn)的標(biāo)識(shí)信息,進(jìn)行文件并行發(fā)送。
[0037]在本發(fā)明實(shí)施例中,文件并行發(fā)送是指文件發(fā)送給各個(gè)目的節(jié)點(diǎn)的過(guò)程均為相互獨(dú)立、互不影響的,在具體實(shí)施時(shí),可為文件發(fā)送給各個(gè)目的節(jié)點(diǎn)的過(guò)程分別創(chuàng)建發(fā)送進(jìn)程,通過(guò)每個(gè)目的節(jié)點(diǎn)各自的發(fā)送進(jìn)程來(lái)處理自身文件發(fā)送過(guò)程。
[0038]204、在對(duì)每個(gè)目的節(jié)點(diǎn)的發(fā)送階段中,根據(jù)文件發(fā)送的不同階段,對(duì)每個(gè)目的節(jié)點(diǎn)的標(biāo)識(shí)信息進(jìn)行更改。
[0039]具體地,在對(duì)每個(gè)目的節(jié)點(diǎn)的發(fā)送階段中,均需要分別根據(jù)文件發(fā)送的不同階段,對(duì)每個(gè)目的節(jié)點(diǎn)的標(biāo)識(shí)信息進(jìn)行更改。具體地,該更改過(guò)程可以是在不同的子目錄下創(chuàng)建空文件、移動(dòng)空文件或者刪除空文件等,本發(fā)明實(shí)施例對(duì)