1. 程式人生 > >FastDFS初步認識--上傳下載流程介紹

FastDFS初步認識--上傳下載流程介紹

冗余 size ID server 存在 上傳文件 都是 客戶端訪問 認識

什麽是FastDFS

FastDFS 是用 c 語言編寫的一款開源的分布式文件系統。FastDFS 為互聯網量身定制,充分考慮了冗余備份、負載均衡、線性擴容等機制,並註重高可用、高性能等指標,使用 FastDFS很容易搭建一套高性能的文件服務器集群提供文件上傳、下載等服務。

FastDFS 架構包括 Tracker server Storage server。客戶端請求 Tracker server 進行文件上傳、下載,通過 Tracker server 調度最終由 Storage server 完成文件上傳和下載。

Tracker server 作用是負載均衡和調度,通過 Tracker server

在文件上傳時可以根據一些策略找到 Storage server 提供文件上傳服務。可以將 tracker 稱為追蹤服務器或調度服務器。

Storage server 作用是文件存儲,客戶端上傳的文件最終存儲在 Storage 服務器上,Storageserver 沒有實現自己的文件系統而是利用操作系統 的文件系統來管理文件。可以將storage稱為存儲服務器。

技術分享圖片

服務端兩個角色:

Tracker:管理集群,tracker 也可以實現集群。每個 tracker 節點地位平等。收集 Storage 集群的狀態。

Storage:實際保存文件 Storage 分為多個組,每個組之間保存的文件是不同的。每個組內部可以有多個成員,組成員內部保存的內容是一樣的,組成員的地位是一致的,沒有主從的概念。

文件上傳流程

技術分享圖片

客戶端上傳文件後存儲服務器將文件 ID 返回給客戶端,此文件 ID 用於以後訪問該文件的索引信息。文件索引信息包括:組名,虛擬磁盤路徑,數據兩級目錄,文件名。

技術分享圖片

組名:文件上傳後所在的 storage 組名稱,在文件上傳成功後有 storage 服務器返回,需要客戶端自行保存。

n 虛擬磁盤路徑storage 配置的虛擬路徑,與磁盤選項 store_path*對應。如果配置了

store_path0 則是 M00,如果配置了 store_path1 則是 M01,以此類推。

n 數據兩級目錄storage 服務器在每個虛擬磁盤路徑下創建的兩級目錄,用於存儲數據

文件。

n 文件名:與文件上傳時不同。是由存儲服務器根據特定信息生成,文件名包含:源存儲

服務器 IP 地址、文件創建時間戳、文件大小、隨機數和文件拓展名等信息。

文件下載流程

技術分享圖片

最簡單的 FastDFS 架構

技術分享圖片

總結

就是說我們客戶端訪問的是 Tracker 服務器 ,Tracker 服務器 是管理 Storage 服務器的,我們的文件最終是存在 Storage 的服務器上的。

上傳成功 會返回一個數組。包含組名 和一串鏈接,都是字符串。然後我們在瀏覽器上訪問這個鏈接就可以訪問上傳的圖片了。當然加上服務器ip

FastDFS初步認識--上傳下載流程介紹