FastDFS文件下載原理
文件下載的原理如下圖所示
- client詢問tracker下載文件的storage,參數爲文件標識(組名和文件名)
- tracker返回一臺可用的storage
- client直接和storage通訊完成文件下載
由於storage有多個存儲節點,存儲節點間的文件同步是在後臺異步進行的,所以有可能出現在讀的時候,文件還沒有同步到某些storage server上,爲了儘量避免訪問到這樣的storage,tracker按照如下規則選擇group內可讀的storage:
- 該文件上傳到的源storage - 由於源頭的地址被編碼在文件名中,只要源頭storage存活,優先返回
- 文件創建時間戳==storage被同步到的時間戳 且(當前時間-文件創建時間戳) > 文件同步最大時間(如5分鐘) - 文件創建後,認爲經過最大同步時間後,肯定已經同步到其他storage了
- 文件創建時間戳 < storage被同步到的時間戳。 - 同步時間戳之前的文件確定已經同步了
- (當前時間-文件創建時間戳) > 同步延遲閥值(如一天)。 - 經過同步延遲閾值時間,認爲文件肯定已經同步了
其他篇章文章
1. FastDFS文件系統簡介與架構原理
2. 文件上傳原理
3. 文件下載原理
4. FastDFS文件同步原理與文件目錄簡介
5. 服務端與客戶端之間的通訊協議(自定義的通訊協議)