畢業設計專案介紹:面向海量小檔案資料儲存平臺
【視訊展示】
【介紹】
面向海量小檔案的儲存平臺,直白就是網盤,但是對於小檔案更多地是非結構化的,怎麼有組織地儲存,必須藉助“分散式儲存架構”,利用了開箱即用而且小巧易搭建的MinIO系統。
【前端技術】
基本沒有人問的;
1、賬號(登入)
2、RESTful 的增刪改查介面
3、檔案目錄樹
【後端技術】
(配置)
1、搭建分散式MinIO系統
本地電腦開啟5臺虛擬機器(其中4臺作為儲存結點,1臺作為伺服器)
基本理論是:4臺儲存結點,除非破壞是一半以上,不然還可以根據Reed-Solomon程式碼,將儲存結點分為n/2的資料塊,n/2奇偶校驗塊
MinIO有一定的容災能力:糾錯(位元組腐蝕)、資料恢復、資料加密。
2、Nginx
其中Server結點配置Nginx,負載均衡,反向代理,快取機制。
(編碼)
3、Tire樹
利用字典樹演算法,加快檢索檔案速度。
原理是:檔案會通過hash成唯一識別碼,而這識別碼由字串組成,字典樹只要從根結點遍歷整個識別碼即可找到對應的儲存點位置。無需通過mysql查詢。
4、RabbitMQ
利用訊息佇列,將使用者上傳檔案解耦成訊息佇列,然後利用空閒時間利用多執行緒實現獲取訊息頭來上傳到雲端。
6、多執行緒
利用go語言的協程,來實現多協程。
3、Redis斷點續傳
https://www.cnblogs.com/mrmirror/p/13583715.html
維護一個replication,分master 和 slave 結點,其中記憶體中的master 裡面有一個backlog,兩者都有replication offset 和 run id ,每當網路出現中斷時,slave就會問master 的 backlog的offset,如果也沒有,則需要resynchronization(重新同步)。
(半自動程式碼 + API)
7、後臺管理gin-vue-admin
https://www.gin-vue-admin.com/
半自動程式碼,開箱即用的後臺管理網頁端。實時監控API,以及
8、阿里雲的雲端儲存(資料容災 + 資料恢復)
公有云,主要是為了容災。也可以通過公有云來提供下載地址,這樣更加安全。
9、騰訊雲的內容檢測
利用騰訊雲的API,可以支援,圖片,文字,視訊,音訊的內容檢測,其中內容檢測主要是做評估,如果評估指數比較高,則放到後臺帶觀察,如果發現在平臺中涉及違法檔案,則會相應進行查封。禁止檔案傳播。