1. 程式人生 > 實用技巧 >分散式檔案儲存-FastDFS之個人記錄

分散式檔案儲存-FastDFS之個人記錄

FastDFS

  • 對於一個專案來說尤其是大型專案,它裡面儲存很多的檔案,比如:圖片、文件、報表…,如果使用傳統方式把這些資源儲存在某一臺的機器磁碟的話,可想而知其容量是不足夠支撐,這些海量檔案的,因此使用FastDFS分散式檔案儲存的解決方案來進行解決
  • 阿里開源的輕量級的分散式檔案系統

FastDFS的功能

  • 分散式檔案儲存、檔案同步、檔案訪問(檔案上傳、下載)等…
  • 還支援冗餘備份、負載均衡、線性擴容
  • FastDFS它注重高可用、高效能優點

FastDFS內部架構的主要兩個角色

Tracker Server和Storage Server

流程

  • 首先客戶端需要先來請求到Tracker Server
  • 然後 tracker server根據自己內部的資訊來決定當前的檔案最終儲存到哪一個Storage Server中

Tracker Server:主要是負載均衡和排程

  • 1:接收使用者的請求向用戶傳送響應
  • 2:收集Storage 中的資訊,根據這些資訊來決定當前使用者上傳的檔案儲存到那個Storage Server中

Storage Server:就是用來進行檔案的儲存,它採用的是線性擴容的形式來進行檔案儲存,理論的情況下它的儲存容量是無上限的

FastDFS架構圖

在這裡插入圖片描述

上傳流程圖(自己畫的,不太好看)

在這裡插入圖片描述

File_id
客戶端上傳檔案後儲存伺服器將檔案ID返回給客戶端,此檔案ID用於以後訪問該資料夾的索引資訊。
檔案索引資訊包括:組名,虛擬磁碟路徑,資料兩級目錄,檔名。

例如:
在這裡插入圖片描述

組名
檔案上傳後所在storage組名稱,在檔案上傳成功後由storage伺服器返回,需要客戶端自行儲存

虛擬磁碟路徑
storage配置的虛擬路徑,與磁碟選項store_path* 對應。如果配置了store_path0則是M00,如果配置了store_path1,則是M01,以此類推。

資料兩級目錄
storage伺服器在每個虛擬磁碟路徑下建立的兩級目錄用於儲存資料檔案

檔名
與檔案上傳時不同。是由儲存伺服器根據特定的資訊生成;檔名包含:源儲存伺服器ip地址、檔案建立時間戳、檔案大小、隨機數和檔案拓展名等資訊