一種數(shù)據(jù)的分發(fā)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別設(shè)及一種數(shù)據(jù)的分發(fā)方法及裝置。
【背景技術(shù)】
[0002] 在視頻數(shù)據(jù)處理技術(shù)中,服務(wù)器需要從多個(gè)客戶端接收視頻數(shù)據(jù)和視頻數(shù)據(jù)的相 關(guān)文件,相關(guān)文件可W為視頻數(shù)據(jù)的描述文件,然后服務(wù)器對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)、建立索引等處 理。
[0003] 當(dāng)同時(shí)有成千上萬(wàn)的客戶端給服務(wù)器發(fā)送數(shù)據(jù)時(shí),給服務(wù)器的存儲(chǔ)容量和處理能 力都帶來(lái)巨大的挑戰(zhàn)。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種數(shù)據(jù)的分發(fā)方法及裝置,用W將數(shù)據(jù)分發(fā)給多個(gè)服務(wù)器,W減少 主服務(wù)器的工作負(fù)荷。
[0005] 一方面,提供一種數(shù)據(jù)的分發(fā)方法,包括:
[0006] 接收至少一條實(shí)例數(shù)據(jù);
[0007] 將至少一條所述實(shí)例數(shù)據(jù)記錄在隊(duì)列中;
[000引從所述隊(duì)列中依次獲取至少一條所述實(shí)例數(shù)據(jù);
[0009] 將至少一條所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)服務(wù)器的一分表中,使得所述實(shí)例數(shù)據(jù) 存儲(chǔ)在所述服務(wù)器的所述分表中。
[0010] 所述將至少一條所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)服務(wù)器的一分表中的步驟包括:
[0011] 根據(jù)所述實(shí)例數(shù)據(jù)的ID與所述服務(wù)器之間的對(duì)應(yīng)關(guān)系W及所述實(shí)例數(shù)據(jù)的ID與 所述分表之間的對(duì)應(yīng)關(guān)系,將至少一條所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)服務(wù)器的一分表中。
[0012] 所述根據(jù)所述實(shí)例數(shù)據(jù)的ID與所述服務(wù)器之間的對(duì)應(yīng)關(guān)系W及所述實(shí)例數(shù)據(jù)的 ID與所述分表之間的對(duì)應(yīng)關(guān)系,將至少一條所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)服務(wù)器的一分表 中的步驟之前,所述方法還包括:
[0013] 建立所述實(shí)例數(shù)據(jù)的ID與所述服務(wù)器之間的對(duì)應(yīng)關(guān)系W及所述實(shí)例數(shù)據(jù)的ID與 所述分表之間的對(duì)應(yīng)關(guān)系。
[0014] 所述建立所述實(shí)例數(shù)據(jù)的ID與所述服務(wù)器之間的對(duì)應(yīng)關(guān)系W及所述實(shí)例數(shù)據(jù)的 ID與所述分表之間的對(duì)應(yīng)關(guān)系的步驟包括:
[0015] 對(duì)所述實(shí)例數(shù)據(jù)的ID,進(jìn)行hash算法,生成ID的哈希值;
[0016] 建立所述哈希值與所述服務(wù)器的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系;
[0017] 建立所述哈希值與所述分表的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。
[0018] 所述建立所述哈希值與所述服務(wù)器的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系的步驟包括:
[0019] 根據(jù)哈希值的數(shù)量級(jí),建立所述哈希值與所述服務(wù)器的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。
[0020] 所述一條實(shí)例數(shù)據(jù)為一視頻文件的一描述文件。
[0021] 另一方面,本發(fā)明還提供一種數(shù)據(jù)的分發(fā)裝置,包括:
[0022] 接收單元,接收至少一條實(shí)例數(shù)據(jù);
[0023] 記錄單元,將至少一條所述實(shí)例數(shù)據(jù)記錄在隊(duì)列中;
[0024] 獲取單元,從所述隊(duì)列中依次獲取至少一條所述實(shí)例數(shù)據(jù);
[0025] 分發(fā)單元,將至少一條所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)服務(wù)器的一分表中,使得所 述實(shí)例數(shù)據(jù)存儲(chǔ)在所述服務(wù)器的所述分表中。
[0026] 所述分發(fā)單元具體為:
[0027] 根據(jù)所述實(shí)例數(shù)據(jù)的ID與所述服務(wù)器之間的對(duì)應(yīng)關(guān)系W及所述實(shí)例數(shù)據(jù)的ID與 所述分表之間的對(duì)應(yīng)關(guān)系,將至少一條所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)服務(wù)器的一分表中。 [002引所述的裝置,還包括:
[0029] 建立單元,建立所述實(shí)例數(shù)據(jù)的ID與所述服務(wù)器之間的對(duì)應(yīng)關(guān)系W及所述實(shí)例 數(shù)據(jù)的ID與所述分表之間的對(duì)應(yīng)關(guān)系。
[0030] 所述建立單元包括:
[003U 生成單元,對(duì)所述實(shí)例數(shù)據(jù)的ID,進(jìn)行hash算法,生成ID的哈希值;
[0032] 第一建立單元,建立所述哈希值與所述服務(wù)器的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系;
[0033] 第二建立單元,建立所述哈希值與所述分表的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。
[0034] 本發(fā)明中,當(dāng)主服務(wù)器接收實(shí)例數(shù)據(jù)后,將所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)其他服 務(wù)器的一分表中,使得所述實(shí)例數(shù)據(jù)存儲(chǔ)在所述其他服務(wù)器的所述分表中,后續(xù)其他服務(wù) 器進(jìn)行數(shù)據(jù)處理、建立索引等,使數(shù)據(jù)均勻地分布在集群數(shù)據(jù)服務(wù)器中,能夠減少海量大數(shù) 據(jù)的存儲(chǔ)與快速讀取帶來(lái)的問(wèn)題,減少主服務(wù)器的工作負(fù)荷,提高后續(xù)對(duì)數(shù)據(jù)的處理速度。
[0035] 本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變 得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫(xiě)的說(shuō)明 書(shū)、權(quán)利要求書(shū)、W及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
[0036] 下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
【附圖說(shuō)明】
[0037] 附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí) 施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
[003引圖1為本發(fā)明實(shí)施例中一種數(shù)據(jù)的分發(fā)方法的流程圖;
[0039] 圖2為本發(fā)明實(shí)施例中一種數(shù)據(jù)的分發(fā)裝置的連接示意圖。
【具體實(shí)施方式】
[0040] W下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí) 施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0041] 如圖1所示,為本發(fā)明所述的一種數(shù)據(jù)的分發(fā)方法的一實(shí)施例,包括:
[0042] 步驟S11,接收至少一條實(shí)例數(shù)據(jù);所述一條實(shí)例數(shù)據(jù)可W為一視頻文件的一描 述文件。描述文件可W包括;視頻的分段地址、視頻資源的標(biāo)題、視頻資源的摘要、視頻資源 的視頻地址、數(shù)據(jù)資源的用戶ID信息。
[0043] 步驟S12,將至少一條所述實(shí)例數(shù)據(jù)記錄在隊(duì)列中;
[0044] 步驟S13,從所述隊(duì)列中依次獲取至少一條所述實(shí)例數(shù)據(jù);
[0045] 步驟S14,將至少一條所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)服務(wù)器的一分表中,使得所述 實(shí)例數(shù)據(jù)存儲(chǔ)在所述服務(wù)器的所述分表中。其中,步驟S14包括;根據(jù)所述實(shí)例數(shù)據(jù)的ID, hash計(jì)算出與所述服務(wù)器之間的對(duì)應(yīng)關(guān)系W及所述實(shí)例數(shù)據(jù)與所述分表之間的對(duì)應(yīng)關(guān)系, 將至少一條所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)服務(wù)器的一分表中。例如,實(shí)例數(shù)據(jù)的ID為ed3 f433d-bbl9-60f4-2e98-afc6d747cdc6,根據(jù)ID,進(jìn)行hash計(jì)算,得到對(duì)應(yīng)服務(wù)器1W及服 務(wù)器1中的分表2,則將實(shí)例數(shù)據(jù)分發(fā)到服務(wù)器1中的分表2中進(jìn)行存儲(chǔ),W對(duì)實(shí)施數(shù)據(jù)進(jìn) 行后續(xù)的其他處理(存儲(chǔ)、數(shù)據(jù)處理、建立索引等)。
[0046] 其中,實(shí)例數(shù)據(jù)和服務(wù)器之間的關(guān)系為多對(duì)一或一對(duì)一的關(guān)系,也就是說(shuō),不同的 實(shí)例數(shù)據(jù)可W放到同一服務(wù)器中,實(shí)例數(shù)據(jù)和服務(wù)器分表之間的關(guān)系為多對(duì)一或者一對(duì)一 的關(guān)系。也就是說(shuō)同一實(shí)例數(shù)據(jù),可W存儲(chǔ)在同一類實(shí)例下的數(shù)據(jù)分表中。例如,實(shí)例電視 數(shù)據(jù)和實(shí)例專輯數(shù)據(jù),它們可W存儲(chǔ)到各自類下的分表中。
[0047] 本發(fā)明中,當(dāng)主服務(wù)器接收實(shí)例數(shù)據(jù)后,將所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)其他服 務(wù)器的一分表中,使得所述實(shí)例數(shù)據(jù)存儲(chǔ)在所述其他服務(wù)器的所述分表中,后續(xù)其他服務(wù) 器進(jìn)行數(shù)據(jù)處理、建立索引等,能夠減少主服務(wù)器的工作負(fù)荷,提高后續(xù)對(duì)數(shù)據(jù)的處理速 度。
[0048] 其中,步驟S14之前,所述方法還包括:
[0049] 步驟S10,建立所述實(shí)例數(shù)據(jù)ID與所述服務(wù)器之間的對(duì)應(yīng)關(guān)系W及所述實(shí)例數(shù)據(jù) ID與所述分表之間的對(duì)應(yīng)關(guān)系。
[0050] 其中,步驟S10包括;
[0化1] 步驟101,對(duì)所述實(shí)例數(shù)據(jù)ID,進(jìn)行哈希hash算法,生成哈希值;
[0化2] 步驟102,建立所述哈希值與所述服務(wù)器的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系;該步驟具體為: 根據(jù)哈希值的數(shù)量級(jí),建立所述哈希值與所述服務(wù)器的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。例如,哈希值 在0-1W的范圍內(nèi)的實(shí)例數(shù)據(jù)對(duì)應(yīng)服務(wù)器1,哈希值在1W-2W的范圍內(nèi)的實(shí)例數(shù)據(jù)對(duì)應(yīng)服務(wù) 器2。該樣,通過(guò)實(shí)例數(shù)據(jù)ID的哈希值的數(shù)量級(jí)可W確定服務(wù)器。
[0化3]步驟103,建立所述哈希值與所述分表的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。
[0化4] 本發(fā)明中,通過(guò)hash算法,能夠使得數(shù)據(jù)比較均勻地分配給各個(gè)服務(wù)器的各個(gè)分 表中。
[005引如圖2所示,為本發(fā)明所述的一種數(shù)據(jù)的分發(fā)裝置,包括:
[0化6] 接收單元21,接收至少一條實(shí)例數(shù)據(jù);
[0化7] 記錄單元22,將至少一條所述實(shí)例數(shù)據(jù)記錄在隊(duì)列中;
[0化引獲取單元23,從所述隊(duì)列中依次獲取至少一條所述實(shí)例數(shù)據(jù);
[0化9] 分發(fā)單元24,將至少一條所述實(shí)例數(shù)據(jù)分發(fā)到至少一個(gè)服務(wù)器的一分表中,使得 所述實(shí)例數(shù)據(jù)存儲(chǔ)在所述服務(wù)器的所述分表中。
[0060] 所述分發(fā)單元24具體為:
[0061] 根據(jù)所述實(shí)例數(shù)據(jù)ID,進(jìn)行hash計(jì)算出