亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

可集群并支持多用戶同時上傳的文件傳輸方法和系統(tǒng)的制作方法

文檔序號:9436116閱讀:1684來源:國知局
可集群并支持多用戶同時上傳的文件傳輸方法和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及通信領域,尤其涉及一種可集群并支持多用戶同時上傳的文件傳輸方法和系統(tǒng)。
【背景技術】
[0002]在互聯網文件傳輸服務開發(fā)任務中,存在程序中讀寫1頻繁而且上傳文件比較大對網絡吞吐量要求高的問題,既要支撐高并發(fā)和高1磁盤訪問,又要保證文件在集群部署中的一致性,同時還要降低程序異常退出、網絡帶寬使用,減少磁盤碎片等問題。
[0003]落地文件,即保存到本地計算機磁盤上的文件。參考圖1,現有文件傳輸服務中,落地文件和文件傳輸服務在同一臺服務器上,讀寫本地磁盤。因此,現有文件傳輸服務不支持集群,落地文件和文件傳輸服務部署在同一臺服務器,受服務器的性能和網絡1影響,單機服務的處理能力得不到最大化,大量用戶并且大文件上傳時,無法達到高并發(fā)高實時性的要求;另一方面由于當服務器出現故障,服務重啟、系統(tǒng)掉電等異常情況出現,沒有備用機器將導致文件傳輸功能無法使用。

【發(fā)明內容】

[0004]本發(fā)明要解決的技術問題在于,針對現有技術的上述缺陷,提供一種可集群并支持多用戶同時上傳的文件傳輸方法和系統(tǒng)。
[0005]本發(fā)明解決其技術問題所采用的技術方案是:構造一種可集群并支持多用戶同時上傳的文件傳輸方法,基于文件傳輸系統(tǒng)實現,該文件傳輸系統(tǒng)包括用戶層、接入層、存儲層,所述用戶層包括多個客戶端,所述接入層包括一個LVS模塊和多個文件傳輸模塊,所述存儲層包括集群部署的多個文件存儲模塊;
[0006]所述方法包括:
[0007]S1、用戶層中的客戶端發(fā)送上傳請求給接入層的LVS模塊,所述上傳請求用于請求向存儲層上傳新文件;
[0008]S2、接入層中的LVS模塊選擇一個文件傳輸模塊處理該上傳請求,文件傳輸模塊將該新文件切分為多個文件塊,并返回上傳響應給對應的客戶端;
[0009]S3、客戶端在接收到上傳響應后,發(fā)送文件塊上傳請求給該文件傳輸模塊;
[0010]S4、文件傳輸模塊基于未上傳的文件塊,返回寫文件塊響應給對應的客戶端;
[0011]S5、客戶端根據接收的寫文件塊響應,發(fā)送對應的文件塊給文件傳輸模塊;
[0012]S6、文件傳輸模塊選擇存儲層中的一個文件存儲模塊存儲該文件塊,并在文件塊存儲完畢后轉步驟S4繼續(xù)下一個文件塊的上傳直至所有的文件塊都上傳至存儲層。
[0013]在本發(fā)明所述的可集群并支持多用戶同時上傳的文件傳輸方法中,所述步驟S2中還包括:所述文件傳輸模塊將每個文件塊切分為多個更小的文件塊;所述步驟S4還包括:文件傳輸模塊根據客戶端的網絡類型和設備類型,經由所述寫文件塊響應設定該客戶端單次上傳的較小文件塊的數量。
[0014]在本發(fā)明所述的可集群并支持多用戶同時上傳的文件傳輸方法中,每個文件塊包括三種狀態(tài):未上傳、正在上傳、已上傳,步驟S2中首次將文件切分時將所有文件塊的狀態(tài)都設置為未上傳,
[0015]所述步驟S4包括:從第I塊較小的文件塊開始順序查找直到找到狀態(tài)為未上傳的一個或者多個文件塊,將該一個或者多個文件塊的位置信息包含在寫文件塊響應中下發(fā),并將該一個或者多個文件塊的狀態(tài)設置為正在上傳,如果某個較大的文件塊中的存在狀態(tài)為正在上傳的較小的文件塊,則將該較大的文件塊的狀態(tài)設置為正在上傳;
[0016]所述步驟S6中,在文件塊存儲完畢時將該文件塊的狀態(tài)設置為已上傳,如果某個較大的文件塊中的所有的較小的文件塊的狀態(tài)均為已上傳,則將該較大的文件塊的狀態(tài)設置為已上傳,如果所有的較大的文件塊的狀態(tài)都為已上傳,則發(fā)送上傳完畢指令給對應的客戶端,結束。
[0017]在本發(fā)明所述的可集群并支持多用戶同時上傳的文件傳輸方法中,所述步驟S6所述的選擇存儲層中的一個文件存儲模塊存儲該文件塊包括:將所述存儲層中的文件存儲模塊順序編號為1-η,η為正整數;將客戶端提交的文件MD5值經過哈希算法整形化后的值對η取模,并將取模的結果記為k ;選擇第k個文件存儲模塊存儲文件塊。
[0018]在本發(fā)明所述的可集群并支持多用戶同時上傳的文件傳輸方法中,所述步驟S2包括:
[0019]S20、LVS模塊接收到的上傳請求后,根據負載均衡算法確定一個文件傳輸模塊,并將該上傳請求轉發(fā)至該文件傳輸模塊;
[0020]S21、該文件傳輸模塊判斷所述上傳請求所對應的新文件是否已上傳;
[0021]S22、如果新文件已上傳,則發(fā)送上傳完畢指令給對應的客戶端,結束;
[0022]S23、如果新文件未上傳或正在上傳,則返回所述上傳響應給對應的客戶端。
[0023]本發(fā)明還公開了一種可集群并支持多用戶同時上傳的文件傳輸系統(tǒng),包括:
[0024]用戶層,包括多個客戶端;
[0025]接入層,包括一個LVS模塊和多個文件傳輸模塊;
[0026]存儲層,包括集群部署的多個文件存儲模塊;
[0027]所述客戶端用于發(fā)送上傳請求給所述LVS模塊,所述上傳請求用于請求向存儲層上傳新文;所述LVS模塊用于選擇一個文件傳輸模塊處理該上傳請求;文件傳輸模塊用于將該新文件切分為多個文件塊,并返回上傳響應給對應的客戶端;所述客戶端還用于在接收到上傳響應后,發(fā)送文件塊上傳請求給文件傳輸模塊;文件傳輸模塊還用于基于未上傳的文件塊返回寫文件塊響應給對應的客戶端;客戶端還用于根據接收的寫文件塊響應,發(fā)送對應的文件塊給文件傳輸模塊;文件傳輸模塊還用于選擇一個文件存儲模塊存儲該文件塊,并在文件塊存儲完畢后發(fā)送下一個寫文件塊響應至對應的客戶端以繼續(xù)下一個文件塊的上傳直至所有的文件塊都上傳至存儲層。
[0028]在本發(fā)明所述的可集群并支持多用戶同時上傳的文件傳輸系統(tǒng)中,所述文件傳輸模塊還用于將每個文件塊切分為多個更小的文件塊;并根據客戶端的網絡類型和設備類型,經由所述寫文件塊響應設定該客戶端單次上傳的較小文件塊的數量。
[0029]在本發(fā)明所述的可集群并支持多用戶同時上傳的文件傳輸系統(tǒng)中,每個文件塊包括三種狀態(tài):未上傳、正在上傳、已上傳,所述LVS模塊首次文件切分時將所有文件塊的狀態(tài)都設置為未上傳,
[0030]所述的文件傳輸模塊基于未上傳的文件塊,返回寫文件塊響應給對應的客戶端包括:從第I塊較小的文件塊開始順序查找直到找到狀態(tài)為未上傳的一個或者多個文件塊,將該一個或者多個文件塊的位置信息包含在寫文件塊響應中下發(fā),并將該一個或者多個文件塊的狀態(tài)設置為正在上傳,如果某個較大的文件塊中的存在狀態(tài)為正在上傳的較小的文件塊,則將該較大的文件塊的狀態(tài)設置為正在上傳;
[0031]所述文件傳輸模塊還用于在文件塊存儲完畢時將該文件塊的狀態(tài)設置為已上傳,如果某個較大的文件塊中的所有的較小的文件塊的狀態(tài)均為已上傳,則將該較大的文件塊的狀態(tài)設置為已上傳,如果所有的較大的文件塊的狀態(tài)都為已上傳,則發(fā)送上傳完畢指令給對應的客戶端。
[0032]在本發(fā)明所述的可集群并支持多用戶同時上傳的文件傳輸系統(tǒng)中,所述的選擇存儲層中的一個文件存儲模塊存儲該文件塊包括:將所述存儲層中的文件存儲模塊順序編號為l_n,n為正整數;將客戶端提交的文件MD5值經過哈希算法整形化后的值對η取模,并將取模的結果記為k ;選擇第k個文件存儲模塊存儲文件塊。
[0033]在本發(fā)明所述的可集群并支持多用戶同時上傳的文件傳輸系統(tǒng)中,所述文件傳輸模塊在接收到的上傳請求時,首先判斷所述上傳請求所對應的新文件是否已上傳,如果新文件已上傳,則發(fā)送上傳完畢指令給對應的客戶端;如果新文件未上傳或正在上傳,則返回上傳響應給對應的客戶端。
[0034]實施本發(fā)明的可集群并支持多用戶同時上傳的文件傳輸方法和系統(tǒng),具有以下有益效果:
[0035]I)、接入層將客戶端的請求采用LVS分發(fā)到相應的接入層文件傳輸模塊,實現程序的分布式部署,以達到接入層程序可集群、高并發(fā)、高1磁盤訪問的效果,提高接入層程序的并發(fā)處理事務的能力,而且文件存儲模塊可集群,
當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1