分布式文件系統FastDFS

1. 什么是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 分為多個組,每個組之間保存的文件是不同的。每 個組內部可以有多個成員,組成員內部保存的內容是一樣的,組成員的地位是一致的,沒有 主從的概念。

2.文件上傳流程

在這里插入圖片描述客戶端上傳文件后存儲服務器將文件 ID 返回給客戶端,此文件 ID 用于以后訪問該文 件的索引信息。文件索引信息包括:組名,虛擬磁盤路徑,數據兩級目錄,文件名。
在這里插入圖片描述
組名:文件上傳后所在的 storage 組名稱,在文件上傳成功后由 storage 服務器返回, 需要客戶端自行保存。
虛擬磁盤路徑:storage 配置的虛擬路徑,與磁盤選項 store_path*對應。如果配置了 store_path0 則是 M00,如果配置了 store_path1 則是 M01,以此類推。
數據兩級目錄:storage 服務器在每個虛擬磁盤路徑下創建的兩級目錄,用于存儲數據 文件。
文件名:與文件上傳時不同。是由存儲服務器根據特定信息生成,文件名包含:源存儲 服務器 IP 地址、文件創建時間戳、文件大小、隨機數和文件拓展名等信息。

3. 文件下載流程

在這里插入圖片描述

4. 簡易FastDFS架構

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452868.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452868.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452868.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html5 下拉刷新(pc+移動網頁源碼)

本文demo下載地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId1071 本文實現在html5網頁中使用下拉功能自動刷新顯示更多內容, 使用jquery捕捉和處理相應的鼠標事件, 例如內容在頂部時,觸發下拉事件后顯示更多內容; 如內容在…

操作系統內存管理問題集錦

1. 可采用哪幾種方式將程序裝入內存?它們分別適用于何種場合? a. 首先由編譯程序將用戶源代碼編譯成若干目標模塊,再由鏈接程序將編譯后形成的目標模塊和所需的-庫函數鏈接在一起,組成一個裝入模塊,再由裝入程序將裝入模塊裝入內存&#x…

java同名變量在list中添加兩次_快速解決List集合add元素,添加多個對象出現重復的問題...

首先我們在new 一個對象的時候,對象的id是唯一確定的;將對象add入list中時,放入list中的其實是對象的引用 ;而每次循環只是簡單的set 對象的屬性,set新的屬性值,而add進list中的對象還是同一個對象id&#…

python面試題總結(1)--語言特性

1. 談談對 Python 和其他語言的區別 答: Python 是一門強類型的可移植、可擴展、可嵌入的解釋型編程語言,屬于動態語言;其語法簡潔優美、功能強大無比、應用領域非常廣泛且具有強大完備的第三方庫。 (注:語言有無類型…

視頻網站盈利模式與營銷策劃

在與數十家視頻網站進行信息網絡傳播權交易過程中,在研究視頻網站內容和盈利模式基礎上,綜合自己在傳統媒體和新媒體領域十幾年的策劃和營銷經驗,我發現:視頻網站的盈利模式其實早就形成多種體系,但是盈利之路艱難&…

USACO 06JAN 牛的舞會 洛谷2863

題目描述 The N (2 < N < 10,000) cows are so excited: it’s prom night! They are dressed in their finest gowns, complete with corsages and new shoes. They know that tonight they will each try to perform the Round Dance. Only cows can perform the Round…

[UWP]了解模板化控件(4):TemplatePart

原文:[UWP]了解模板化控件(4)&#xff1a;TemplatePart1. TemplatePart TemplatePart&#xff08;部件&#xff09;是指ControlTemplate中的命名元素。控件邏輯預期這些部分存在于ControlTemplate中&#xff0c;并且使用protected DependencyObject GetTemplateChild(String ch…

動態重定位的增加的緊湊功能

動態重定位增加了緊湊的功能&#xff0c;在動態的分區分配時&#xff0c;可以對外部碎片進行緊湊來為沒有內存空間進行存儲的進程進行分配。

java 重載 equals_實現Student類的equals重載函數

[java]代碼庫//測試類public class StudentDemo {public static void main(String[] args) {Student s1 new Student("000","張三",18);Student s2 new Student("000","張三",18);//隨便改boolean flag s1.equals(s2);System.out.p…

python面試題總結(2)--編碼規范

1. 什么是 PEP8? 答&#xff1a;PEP8 --《Python Enhancement Proposal #8》&#xff08;8 號 Python 增強提案&#xff09;&#xff0c;他針對的 Python 代碼格式而編訂的風格指南。 2. 了解 Python 之禪么&#xff1f; 答&#xff1a;通過 import this 語句可以獲取其具體…

【Unity熱更新】學會AssetsBundle打包、加載、卸載

本教程詳細講解什么是AssetBundle壓縮包機制!然后構建 AssetBundle、加載 AssetBundle 以及卸載 AssetBundle 的簡要教程。這一個流程就是熱更新! AssetBundles 簡介 1.什么是AssetBundles? AssetBundles是Unity中一種用于打包和存儲資源(如模型、紋理、聲音等)的文件格…

Confluence 6 訪問你的宏正文(body)

請查看 Writing User Macros 頁面獲得有關如何寫用戶宏的介紹。 這個頁面介紹你可以在用戶宏中可以使用的的代碼信息。 訪問你的宏正文&#xff08;body&#xff09; 在你用戶宏模板中的 $body 對象可以訪問訪問到傳遞到你宏正文中的內容。 當你的宏有指定的正文的時候&#xf…

hibernate主鍵生成策略

1、hibernate 要求實體類里面有一個屬性作為唯一值&#xff0c;對應的表字段是主鍵&#xff0c;主鍵可以不同的生成策略 2、hibernate 主鍵生成策略有很多的值 <generator class"native"></generator> 3、在class屬性里面有很多值 &#xff08;1&#xf…

jboss mysql cluster_jboss配置mysql數據庫連接池

jboss配置mysql數據庫連接池下面YJBYS小編為大家整理了關于jboss配置mysql數據庫連接池的文章&#xff0c;希望對你有所幫助。更多Java認證考試信息&#xff0c;盡在應屆畢業生培訓網!1&#xff1a;配置&#xff1a;JDK 1.5JBoss4.0.4Mysql5.0Myeclipse 4.12&#xff1a;建立數…

P2P-挑戰和機遇

近年來互聯網上對等連接P2P應用發展迅速&#xff0c;MP3和視頻文件共享下載的P2P流已經成為寬帶用戶流量的主體。基于P2P的即時通信和互聯網電話&#xff08;如Skype&#xff09;發展迅速&#xff0c;對等廣播P2P流媒體等正在興起。P2P協同計算和網格方興未艾。P2P 應用支持網絡…

python面試題總結(3)-- 數據類型(字符串)

1. 列舉 Python 中的基本數據類型&#xff1f; 答&#xff1a; Python3 中有六個標準的數據類型&#xff1a;數字&#xff08;Number&#xff09;、字符串&#xff08;String&#xff09;、列表&#xff08;List&#xff09;、元組&#xff08;Tuple&#xff09;、集合&#…

網頁中JS函數自動執行常用三種方法

&#xff08;1&#xff09;最簡單的調用方式&#xff0c;直接寫到html的body標簽里面&#xff1a; <body οnlοad"myFunction()"></body> <script type"text/javascript"> function myFunction(){ …

Jetty - Container源碼分析

1. 描述 Container提供管理bean的能力。 基于Jetty-9.4.8.v20171121。 1.1 API public interface Container {// 增加一個bean&#xff0c;如果bean是一個Container.Listener則隱含調用addEventListener(Container.Listener)方法// Container.Listener只關心兩個事件&#xff1…

Ubuntu中安裝FastDFS

1 安裝fastdfs依賴包 解壓縮libfastcommon-master.zip進入到libfastcommon-master的目錄中執行 ./make.sh執行 sudo ./make.sh install 2 安裝fastdfs 解壓縮fastdfs-master.zip進入到 fastdfs-master目錄中執行 ./make.sh執行 sudo ./make.sh install 3 配置跟蹤服務器tra…