框架 | FastDFS 入門到應用
餘慶老師在他的 Github 上介紹關於 FastDFS 開源專案的描述:FastDFS 是一個開源的高效能分散式檔案系統 ( DFS )。 它的主要功能包括檔案儲存,檔案同步和檔案訪問,以及高容量和負載平衡。
FastDFS 簡單介紹
FastDFS 核心元件
-
Tracker Server
:跟蹤伺服器,負責維持叢集的資訊;負責管理所有的 Storage Server 和 Group,每個 Storage 在啟動後會連線 Tracker,告知自己所屬 group 等資訊,並保持週期性心跳。 -
Storage server
:儲存伺服器,以 Group 為單位進行組織,任何一個 Storage Server 都應該屬於某個 Group;一個 Group 可含多個 Storage server;在同一個 Group 內部,各 Storage Server 的資料自行同步、備份。 -
Client
:客戶端,上傳、下載資料的伺服器,也就是我們自己的專案所部署在的伺服器。核心元件的介紹參考了 [1]、[2] 的概念敘述。
FastDFS 組織架構
-
結合元件的功能描述可知,FastDFS 的組織架構 $^{[2]}$ 如圖 1-1 所示。
圖 1-1 FastDFS 的組織架構
FastDFS 檔案傳輸
-
通過時序圖,分析 FastDFS 檔案上傳、檔案下載等操作的流程,如圖 1-2 所示。
圖 1-2 FastDFS 檔案上傳、下載的時序圖 -
檔案上傳流程:
- 1) Client 詢問 Tracker,傳送上傳檔案的請求;
- 2) Tracker 返回可呼叫的
Storage ID: Port
; - 3) Client 直接與目標 Storage 通訊,完成檔案上傳;
- 4) Storage 返回
檔案ID
,檔案ID 為Group ID + FileName
。
- 檔案下載流程:
檔案ID Storage ID: Port 檔案內容
FastDFS 客戶端
Java 客戶端
- 呼叫餘慶老師封裝的 FastDFS Client Java SDK ,即可實現客戶端訪問 FastDFS。