更新時間:2021-06-08 16:12:28 來源:動力節點 瀏覽2331次
FastDFS是一個以C語言開發的開源的輕量級分布式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以中小文件(建議范圍:4KB < file_size <500MB),如相冊網站、視頻網站等等。
FastDFS為互聯網量身定制,充分考慮了冗余備份、負載均衡、線性擴容等機制,并注重高可用、高性能等指標,使用FastDFS很容易搭建一套高性能的文件服務器集群提供文件上傳、下載等服務。
FastDFS由跟蹤服務器(Tracker Server)、存儲服務器(Storage Server)和客戶端(Client)構成。
主要作用是負載均衡和資源調度。
追蹤服務器負責接收客戶端的請求,選擇合適的組合storage server,tracker server與storage server之間也會用心跳機制來檢測對方是否活著。
Tracker需要管理的信息也都放在內存中,并且里面所有的Tracker都是對等的(每個節點地位相等),很容易擴展。
客戶端訪問集群的時候會隨機分配一個Tracker來和客戶端交互。
實際存儲數據,分成若干個組(group),實際traker就是管理的storage中的組,而組內機器中則存儲數據,group可以隔離不同應用的數據,不同的應用的數據放在不同group里面。
優點:海量的存儲:主從型分布式存儲,存儲空間方便拓展,且集群的實現也使系統不存在單點故障問題,用戶不會因為服務器宕機而無法訪問文件資源。fastDFS對文件內容做hash處理,避免出現重復文件,然后fastDFS結合Nginx集成,提供網站效率。
主要是上傳下載數據的服務器,也就是我們自己的項目所部署在的服務器。每個客戶端服務器都需要安裝Nginx。
文件上傳:Client會先向Tracker詢問存儲地址,Tracker查詢到存儲地址后返回給Client,Client拿著地址直接和對應的Storage通訊,將文件上傳至改Storage。
storage會將他所掛載的所有數據存儲目錄的底下都創建2級子目錄,每一級256個總共65536個,新寫的文件會以hash的方式被路由到其中某個子目錄下,然后將文件數據作為本地文件存儲到該目錄中。
文件下載:當客戶端向Tracker發起下載請求時,并不會直接下載,而是先查詢storage server(檢測同步狀態),返回storage server的ip和端口,然后客戶端會帶著文件信息(組名,路徑,文件名),去訪問相關的storage,然后下載文件。
以上就是動力節點小編介紹的"FastDFS的原理及詳解",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習