一種數(shù)據(jù)回源的方法、裝置及邊緣服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)傳輸領(lǐng)域,特別涉及一種數(shù)據(jù)回源的方法、裝置及邊緣服務(wù)器。
【背景技術(shù)】
[0002]目前,數(shù)據(jù)存儲網(wǎng)絡(luò)普遍采用分層的拓撲結(jié)構(gòu),其中:由一個或幾個中心存儲服務(wù)器集群作為中心存儲器,存儲全部的數(shù)據(jù),這些存儲器是不對客戶端服務(wù)的;中心存儲器連接邊緣服務(wù)器,中心存儲器不對客戶端服務(wù),由邊緣服務(wù)器對客戶端提供服務(wù)。由于邊緣服務(wù)器不可能存儲全部數(shù)據(jù),因此,會出現(xiàn)客戶端設(shè)備向邊緣服務(wù)器請求數(shù)據(jù)而該服務(wù)器沒有相應(yīng)數(shù)據(jù)的情況。此時,邊緣服務(wù)器就需要向后端的中心存儲器請求數(shù)據(jù),并將所請求到的數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端設(shè)備,這個邊緣服務(wù)器向后端的中心存儲器請求數(shù)據(jù)再轉(zhuǎn)發(fā)給客戶端設(shè)備的過程就被稱為:數(shù)據(jù)回源。
[0003]在現(xiàn)有技術(shù)中,若客戶端只需要一個文件的某一個部分的數(shù)據(jù),邊緣服務(wù)器仍會下載該文件的全部數(shù)據(jù),并存儲該文件的全部數(shù)據(jù),然后把用戶需要的那部分轉(zhuǎn)發(fā)給用戶,這樣就會多下載用戶不需要的文件數(shù)據(jù),造成了帶寬浪費;其次,邊緣服務(wù)器不會存儲所述完整文件數(shù)據(jù)中的用戶需要的那部分文件數(shù)據(jù),當(dāng)有客戶端再次請求該部分數(shù)據(jù)時,則需要邊緣服務(wù)器重新進行數(shù)據(jù)回源,也會對帶寬造成浪費;再次,如果遇到同時有多個用戶請求回源同一個數(shù)據(jù)時,邊緣服務(wù)器會向后端的中心存儲器進行多次數(shù)據(jù)回源操作,回源相同的數(shù)據(jù),會造成效率低下和帶寬的浪費的問題;最后,在現(xiàn)有的數(shù)據(jù)回源技術(shù)中,邊緣服務(wù)器對每個客戶端的數(shù)據(jù)請求按照請求其到達邊緣服務(wù)器的先后順序,依次進行數(shù)據(jù)回源,而不區(qū)分每個客戶端的數(shù)據(jù)請求的優(yōu)先級,如果先來的請求是個優(yōu)先級低的請求,后來的請求是個優(yōu)先級高的請求,則先來的優(yōu)先級低的請求會搶占帶寬,影響用戶體驗。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例的目的在于提供一種數(shù)據(jù)回源的方法、裝置及邊緣服務(wù)器,能夠針對回源某一文件部分數(shù)據(jù)的情況,減少數(shù)據(jù)回源對網(wǎng)絡(luò)帶寬的消耗。
[0005]為達到上述目的,本發(fā)明實施例公開了一種文件回源的方法,應(yīng)用于第一邊緣服務(wù)器,所述第一邊緣服務(wù)器與前端設(shè)備以及后端設(shè)備連接,所述前端設(shè)備為客戶端設(shè)備或第二邊緣服務(wù)器,所述后端設(shè)備為第三邊緣服務(wù)器或中心存儲器,其中,所述后端設(shè)備和所述第一邊緣服務(wù)器中均存儲有文件的分段數(shù)據(jù),所述方法包括:
[0006]步驟S1、接收所述前端設(shè)備發(fā)送的多個下載請求,各個所述下載請求中均包含有所請求下載的數(shù)據(jù)所屬的目標文件的文件標識和所請求的數(shù)據(jù)區(qū)間,所述下載請求所請求下載的數(shù)據(jù)均來自同一個目標文件;
[0007]步驟S2、對下載請求中的數(shù)據(jù)區(qū)間進行合并,獲得總數(shù)據(jù)區(qū)間;
[0008]步驟S3、確定合并后可覆蓋所述總數(shù)據(jù)區(qū)間的各分段數(shù)據(jù),將可覆蓋所述總數(shù)據(jù)區(qū)間的各分段數(shù)據(jù)確定為所需分段數(shù)據(jù);
[0009]步驟S4、向所述后端設(shè)備獲取所述第一邊緣服務(wù)器本地未存儲的所需分段數(shù)據(jù);
[0010]步驟S5、針對每一個下載請求,將所述所需分段數(shù)據(jù)中的該下載請求所請求下載的數(shù)據(jù)提取出,傳輸?shù)桨l(fā)送該下載請求的前端設(shè)備中。
[0011]較佳的,所述步驟S4,包括:
[0012]步驟S4.1、將所述總數(shù)據(jù)區(qū)間按照預(yù)設(shè)的劃分規(guī)則,劃分為多個子區(qū)間;
[0013]步驟S4.2、針對每一個子區(qū)間,判斷本地是否存儲有包含該子區(qū)間所對應(yīng)的數(shù)據(jù)的所需分段數(shù)據(jù),若否,則向所述后端設(shè)備獲取所述所需分段數(shù)據(jù)。
[0014]較佳的,各個所述下載請求中還均包含有該下載請求的優(yōu)先級信息,在所述步驟S4.1之后、所述步驟S4.2之前,還包括:
[0015]步驟S4.11、根據(jù)每個下載請求的優(yōu)先級標識信息,確定每個所述子區(qū)間的優(yōu)先級;
[0016]相應(yīng)的,所述步驟S4.2,包括:
[0017]按照所述子區(qū)間的優(yōu)先級從高到低的順序,依次選取每個子區(qū)間作為當(dāng)前子區(qū)間,在本地所有具有所述文件標識的分段數(shù)據(jù)中,查找是否存在包含該當(dāng)前子區(qū)間所對應(yīng)的數(shù)據(jù)的所需分段數(shù)據(jù),若否,則向所述后端設(shè)備獲取所述所需分段數(shù)據(jù),并讀取所述所需分段數(shù)據(jù),若是,則從本地直接讀取所述所需分段數(shù)據(jù);
[0018]所述步驟S5,包括:
[0019]確定請求該當(dāng)前子區(qū)間內(nèi)的數(shù)據(jù)的下載請求,從所述讀取的所需分段數(shù)據(jù)中讀取所確定的各下載請求所請求下載的數(shù)據(jù),將讀取的數(shù)據(jù)傳輸?shù)桨l(fā)送所確定的下載請求的前端設(shè)備中。
[0020]較佳的,所述步驟S4.11,包括:
[0021]對每個子區(qū)間:將請求該子區(qū)間對應(yīng)數(shù)據(jù)的優(yōu)先級最高的下載請求的優(yōu)先級,確定為該子區(qū)間的優(yōu)先級。
[0022]較佳的,在所述向所述后端設(shè)備獲取所述所需分段數(shù)據(jù)之后,還包括:
[0023]將所述獲取的所述所需分段數(shù)據(jù)保存在本地。
[0024]本發(fā)明實施例還公開了一種文件回源的裝置,應(yīng)用于第一邊緣服務(wù)器,
[0025]所述第一邊緣服務(wù)器與前端設(shè)備以及后端設(shè)備連接,所述前端設(shè)備為客戶端設(shè)備或第二邊緣服務(wù)器,所述后端設(shè)備為第三邊緣服務(wù)器或中心存儲器,其中,所述后端設(shè)備和所述第一邊緣服務(wù)器中均存儲有文件的分段數(shù)據(jù),所述裝置包括:
[0026]下載請求接收模塊,用于接收所述前端設(shè)備發(fā)送的多個下載請求,各個所述下載請求中均包含有所請求下載的數(shù)據(jù)所屬的目標文件的文件標識和所請求的數(shù)據(jù)區(qū)間,所述下載請求所請求下載的數(shù)據(jù)均來自同一個目標文件;
[0027]區(qū)間合并模塊,用于對下載請求中的數(shù)據(jù)區(qū)間進行合并,獲得總數(shù)據(jù)區(qū)間;
[0028]所需分段數(shù)據(jù)確定模塊,用于確定合并后可覆蓋所述區(qū)間合并模塊獲得的總數(shù)據(jù)區(qū)間的各分段數(shù)據(jù),將可覆蓋所述總數(shù)據(jù)區(qū)間的各分段數(shù)據(jù)確定為所需分段數(shù)據(jù);
[0029]所需分段數(shù)據(jù)獲取模塊,用于向所述后端設(shè)備獲取所述第一邊緣服務(wù)器本地未存儲的所需分段數(shù)據(jù);
[0030]數(shù)據(jù)發(fā)送模塊,用于針對每一個下載請求,將所述所需分段數(shù)據(jù)中的該下載請求所請求下載的數(shù)據(jù)提取出,傳輸?shù)桨l(fā)送該下載請求的前端設(shè)備中。
[0031]較佳的,所述所需分段數(shù)據(jù)獲取模塊,包括:
[0032]子區(qū)間劃分子模塊,用于將所述總數(shù)據(jù)區(qū)間按照預(yù)設(shè)的劃分規(guī)則,劃分為多個子區(qū)間;
[0033]子區(qū)間所需分段數(shù)據(jù)獲取子模塊,用于針對每一個子區(qū)間,判斷本地是否存儲有包含該子區(qū)間所對應(yīng)的數(shù)據(jù)的所需分段數(shù)據(jù),若否,則向所述后端設(shè)備獲取所述所需分段數(shù)據(jù)。
[0034]較佳的,各個所述下載請求中還均包含有該下載請求的優(yōu)先級信息,所述所需分段數(shù)據(jù)獲取模塊,還包括:
[0035]子區(qū)間優(yōu)先級確定子模塊,用于根據(jù)每個下載請求的優(yōu)先級標識信息,確定每個所述子區(qū)間的優(yōu)先級;
[0036]所述子區(qū)間所需分段數(shù)據(jù)獲取子模塊,具體用于按照所述子區(qū)間的優(yōu)先級從高到低的順序,依次選取每個子區(qū)間作為當(dāng)前子區(qū)間,在本地中所有具有所述文件標識的分段數(shù)據(jù)中,查找是否存在包含該當(dāng)前子區(qū)間所對應(yīng)的數(shù)據(jù)的所需分段數(shù)據(jù),若否,則向所述后端設(shè)備獲取所述所需分段數(shù)據(jù),并讀取所述所需分段數(shù)據(jù),若是,則從本地直接讀取所述所需分段數(shù)據(jù);
[0037]所述數(shù)據(jù)發(fā)送模塊,具體用于確定請求該當(dāng)前子區(qū)間內(nèi)的數(shù)據(jù)的下載請求,從所述讀取的所需分段數(shù)據(jù)中讀取所確定的各下載請求所請求下載的數(shù)據(jù),將讀取的數(shù)據(jù)傳輸?shù)桨l(fā)送所確定的下載請求的前端設(shè)備中。
[0038]較佳的,所述子區(qū)間優(yōu)先級確定模塊,具體用于對每個子區(qū)間:將請求該子區(qū)間對應(yīng)數(shù)據(jù)的優(yōu)先級最高的下載請求的優(yōu)先級,確定為該子區(qū)間的優(yōu)先級。
[0039]本發(fā)明實施例還公開了一種邊緣服務(wù)器,將所述邊緣服務(wù)器記為第一邊緣服務(wù)器,所述第一邊緣服務(wù)器與前端設(shè)備以及后端設(shè)備連接,所述前端設(shè)備為客戶端設(shè)備或第二邊緣服務(wù)器,所述后端設(shè)備為第三邊緣服務(wù)器或中心存儲器,其中