本發(fā)明涉及文件傳輸,尤其涉及一種大文件傳輸方法、裝置、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著企業(yè)信息化程度的不斷提高,自動(dòng)化運(yùn)維平臺(tái)在企業(yè)的日常運(yùn)營(yíng)中發(fā)揮著越來越重要的作用。在大規(guī)模分布式系統(tǒng)中,文件傳輸是運(yùn)維工作中的一項(xiàng)基本需求,然而,傳統(tǒng)的文件傳輸方式在傳輸大文件時(shí)存在以下問題,一次性傳輸大文件時(shí),由于文件大小超過內(nèi)存容量,導(dǎo)致系統(tǒng)無法處理,從而引發(fā)程序崩潰問題;在多層文件傳輸過程中,由于需要等待文件完全接收后再進(jìn)行下一步操作,導(dǎo)致傳輸時(shí)延較長(zhǎng),影響了整體的傳輸效率;這些問題嚴(yán)重影響了大文件傳輸?shù)男屎头€(wěn)定性。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供了一種大文件傳輸方法、裝置、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),以解決現(xiàn)有技術(shù)中大文件傳輸?shù)男屎头€(wěn)定性較低的技術(shù)問題。
2、本發(fā)明的技術(shù)方案如下,提供了一種大文件傳輸方法,包括:
3、當(dāng)服務(wù)模塊收到文件采集任務(wù)時(shí),將所述文件采集任務(wù)存入所述服務(wù)模塊的第一任務(wù)池中,使控制模塊拉取所述第一任務(wù)池中的所述文件采集任務(wù),將所述文件采集任務(wù)存入所述控制模塊的第二任務(wù)池中,使執(zhí)行模塊拉取所述第二任務(wù)池中的所述文件采集任務(wù);
4、使所述執(zhí)行模塊根據(jù)所述文件采集任務(wù)從目標(biāo)主機(jī)上采集文件,將采集的文件打包壓縮后切割成多個(gè)分片文件,并發(fā)送至所述控制模塊,使所述控制模塊將所述多個(gè)分片文件轉(zhuǎn)發(fā)給所述服務(wù)模塊,使所述服務(wù)模塊將所述多個(gè)分片文件進(jìn)行重組并存入至第一預(yù)設(shè)位置;
5、當(dāng)所述服務(wù)模塊收到文件分發(fā)任務(wù)時(shí),將所述文件分發(fā)任務(wù)存入所述服務(wù)模塊的第三任務(wù)池,使所述控制模塊從所述第三任務(wù)池中拉取文件分發(fā)任務(wù)并從所述服務(wù)模塊中拉取待分發(fā)文件,并使所述服務(wù)模塊將待分發(fā)文件分片傳輸給所述控制模塊;
6、使所述執(zhí)行模塊從所述控制模塊的任務(wù)池中拉取文件分發(fā)任務(wù)并從所述控制模塊中拉取待分片后的待分發(fā)文件,并使所述執(zhí)行模塊接收到分片后的待分發(fā)文件后,進(jìn)行合并和完整性檢驗(yàn),上傳至目標(biāo)主機(jī)的第二預(yù)設(shè)位置。
7、進(jìn)一步地,在將所述文件采集任務(wù)存入所述服務(wù)模塊的第一任務(wù)池中之前,還包括,判斷所述服務(wù)模塊的第一任務(wù)池中是否存在文件,若存在并且需要拉取最新文件,則刪除所述第一任務(wù)池中的文件;
8、在將所述文件采集任務(wù)存入所述控制模塊的第二任務(wù)池中之前,還包括,判斷所述控制模塊的臨時(shí)空間中是否存在文件,若存在并且需要拉取最新文件,則刪除所述臨時(shí)空間中的文件。
9、進(jìn)一步地,將所述文件分發(fā)任務(wù)存入所述服務(wù)模塊的第三任務(wù)池,包括:
10、檢查所述服務(wù)模塊的第三預(yù)設(shè)位置是否存在所述文件分發(fā)任務(wù)對(duì)應(yīng)的目標(biāo)文件,若存在,則將所述文件分發(fā)任務(wù)存入所述服務(wù)模塊的任務(wù)池。
11、進(jìn)一步地,使所述執(zhí)行模塊根據(jù)所述文件采集任務(wù)從目標(biāo)主機(jī)上采集文件,包括:
12、使所述執(zhí)行模塊根據(jù)所述文件采集任務(wù)通過文件傳輸協(xié)議從目標(biāo)主機(jī)上采集文件,若操作成功,則上報(bào)第一采集任務(wù)成功結(jié)果,否則,上報(bào)第一采集任務(wù)失敗結(jié)果。
13、進(jìn)一步地,在將采集的文件打包壓縮后切割成多個(gè)分片文件,并發(fā)送至所述控制模塊后,還包括:
14、使所述控制模塊輪詢檢查是否在第一預(yù)設(shè)時(shí)間內(nèi)收到所述多個(gè)分片文件,若是,則上報(bào)第二采集任務(wù)成功結(jié)果,否則,上報(bào)第二采集任務(wù)失敗結(jié)果。
15、進(jìn)一步地,使所述控制模塊將所述多個(gè)分片文件轉(zhuǎn)發(fā)給所述服務(wù)模塊,使所述服務(wù)模塊將所述多個(gè)分片文件進(jìn)行重組并存入至第一預(yù)設(shè)位置,包括:
16、使所述控制模塊將所述多個(gè)分片文件轉(zhuǎn)發(fā)給所述服務(wù)模塊,使所述服務(wù)模塊輪詢檢查是否在第二預(yù)設(shè)時(shí)間內(nèi)收到所述多個(gè)分片文件;
17、若是,則驗(yàn)證所述多個(gè)分片文件的分片的順序和完整性,以進(jìn)行文件重組,將重組后的文件至存入第一預(yù)設(shè)位置,上報(bào)第三采集任務(wù)成功結(jié)果;
18、否則,上報(bào)第三采集任務(wù)失敗結(jié)果。
19、進(jìn)一步地,從所述服務(wù)模塊中拉取待分發(fā)文件之后,還包括,判斷所述控制模塊拉取待分發(fā)文件是否成功,若是,則上報(bào)第一分發(fā)任務(wù)成功結(jié)果,否則,上報(bào)第一分發(fā)任務(wù)失敗結(jié)果;
20、從所述控制模塊中拉取待分片后的待分發(fā)文件之后,還包括,判斷所述執(zhí)行模塊拉取待分發(fā)文件是否成功,若是,則上報(bào)第二分發(fā)任務(wù)成功結(jié)果,否則,上報(bào)第二分發(fā)任務(wù)失敗結(jié)果。
21、本發(fā)明的另一技術(shù)方案如下,提供了一種大文件傳輸裝置,包括采集任務(wù)拉取單元、文件采集單元、第一分發(fā)任務(wù)單元和第二分發(fā)任務(wù)單元;
22、所述采集任務(wù)拉取單元,用于當(dāng)服務(wù)模塊收到文件采集任務(wù)時(shí),將所述文件采集任務(wù)存入所述服務(wù)模塊的第一任務(wù)池中,使控制模塊拉取所述第一任務(wù)池中的所述文件采集任務(wù),將所述文件采集任務(wù)存入所述控制模塊的第二任務(wù)池中,使執(zhí)行模塊拉取所述第二任務(wù)池中的所述文件采集任務(wù);
23、所述文件采集單元,用于使所述執(zhí)行模塊根據(jù)所述文件采集任務(wù)從目標(biāo)主機(jī)上采集文件,將采集的文件打包壓縮后切割成多個(gè)分片文件,并發(fā)送至所述控制模塊,使所述控制模塊將所述多個(gè)分片文件轉(zhuǎn)發(fā)給所述服務(wù)模塊,使所述服務(wù)模塊將所述多個(gè)分片文件進(jìn)行重組并存入至第一預(yù)設(shè)位置;
24、所述第一分發(fā)任務(wù)單元,用于當(dāng)所述服務(wù)模塊收到文件分發(fā)任務(wù)時(shí),將所述文件分發(fā)任務(wù)存入所述服務(wù)模塊的第三任務(wù)池,使所述控制模塊從所述第三任務(wù)池中拉取文件分發(fā)任務(wù)并從所述服務(wù)模塊中拉取待分發(fā)文件,并使所述服務(wù)模塊將待分發(fā)文件分片傳輸給所述控制模塊;
25、所述第二分發(fā)任務(wù)單元,用于使所述執(zhí)行模塊從所述控制模塊的任務(wù)池中拉取文件分發(fā)任務(wù)并從所述控制模塊中拉取待分片后的待分發(fā)文件,并使所述執(zhí)行模塊接收到分片后的待分發(fā)文件后,進(jìn)行合并和完整性檢驗(yàn),上傳至目標(biāo)主機(jī)的第二預(yù)設(shè)位置。
26、本發(fā)明的另一技術(shù)方案如下,提供了一種計(jì)算機(jī)設(shè)備,所述設(shè)備包括處理器、通信接口、存儲(chǔ)器和通信總線,其中,處理器、通信接口、存儲(chǔ)器通過通信總線完成相互間的通信;
27、存儲(chǔ)器,用于存放計(jì)算機(jī)程序;
28、處理器,用于執(zhí)行存儲(chǔ)器上所存放的程序時(shí),實(shí)現(xiàn)如上述任一項(xiàng)技術(shù)方案所述的大文件傳輸方法的步驟。
29、本發(fā)明的另一技術(shù)方案如下,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一項(xiàng)技術(shù)方案所述的大文件傳輸方法的步驟。
30、本發(fā)明的有益效果在于:當(dāng)服務(wù)模塊收到文件采集任務(wù)時(shí),將所述文件采集任務(wù)存入所述服務(wù)模塊的第一任務(wù)池中,使控制模塊拉取所述第一任務(wù)池中的所述文件采集任務(wù),將所述文件采集任務(wù)存入所述控制模塊的第二任務(wù)池中,使執(zhí)行模塊拉取所述第二任務(wù)池中的所述文件采集任務(wù);使所述執(zhí)行模塊根據(jù)所述文件采集任務(wù)從目標(biāo)主機(jī)上采集文件,將采集的文件打包壓縮后切割成多個(gè)分片文件,并發(fā)送至所述控制模塊,使所述控制模塊將所述多個(gè)分片文件轉(zhuǎn)發(fā)給所述服務(wù)模塊,使所述服務(wù)模塊將所述多個(gè)分片文件進(jìn)行重組并存入至第一預(yù)設(shè)位置;當(dāng)所述服務(wù)模塊收到文件分發(fā)任務(wù)時(shí),將所述文件分發(fā)任務(wù)存入所述服務(wù)模塊的第三任務(wù)池,使所述控制模塊從所述第三任務(wù)池中拉取文件分發(fā)任務(wù)并從所述服務(wù)模塊中拉取待分發(fā)文件,并使所述服務(wù)模塊將待分發(fā)文件分片傳輸給所述控制模塊;使所述執(zhí)行模塊從所述控制模塊的任務(wù)池中拉取文件分發(fā)任務(wù)并從所述控制模塊中拉取待分片后的待分發(fā)文件,并使所述執(zhí)行模塊接收到分片后的待分發(fā)文件后,進(jìn)行合并和完整性檢驗(yàn),上傳至目標(biāo)主機(jī)的第二預(yù)設(shè)位置;通過上述方式,通過將大文件切割成分片進(jìn)行傳輸,避免了單次傳輸大文件時(shí)內(nèi)存不足的問題,每個(gè)分片的大小可以進(jìn)行靈活調(diào)整,在多層傳輸過程中,采用流式傳輸方式,即每個(gè)分片在接收后立即轉(zhuǎn)發(fā),避免了中轉(zhuǎn)節(jié)點(diǎn)的存儲(chǔ)空間被大量占用,減少了傳輸時(shí)延,提高了大文件傳輸?shù)男剩煌ㄟ^分片傳輸和并行傳輸,充分利用了網(wǎng)絡(luò)帶寬,減少了網(wǎng)絡(luò)擁塞的可能性,能夠在不同的網(wǎng)絡(luò)環(huán)境下穩(wěn)定運(yùn)行,適應(yīng)各種網(wǎng)絡(luò)條件,提高了大文件傳輸?shù)姆€(wěn)定性。