欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

FastDFS詳解

系統 2017 0

1.FastDFS 是什么

??? FastDFS是一款類Google?FS的開源分布式文件系統,它用純C語言實現,支持Linux、FreeBSD、AIX等UNIX系統。它只能通過 專有API對文件進行存取訪問,不支持POSIX接口方式,不能mount使用。

??? 準確地講,Google?FS以及FastDFS、mogileFS、 HDFS、TFS等類Google?FS都不是系統級的分布式文件系統,而是應用級的分布式文件存儲服務。

??? FastDFS的作者是余慶,現在淘寶網Java中間件團隊從事Java基礎平臺研發工作。

以上文字引用自<<程序員>> 文章 <<分布式文件系統FastDFS架構剖析>> http://www.programmer.com.cn/tag/fastdfs- 架構/

?

2.FastDFS 的體系結構


?

?

3.FastDFS 工作過程

1.?Client詢問Tracker?server上傳到的Storage?server;

2.?Tracker?server返回一臺可用的Storage?server,返回的數據為該Storage?server的IP地址和端口;

3.?Client直接和該Storage?server建立連接,進行 文件上傳 ,Storage?server返回新生成的文件ID, 文件上傳 結束。

?


?

1.?Client詢問Tracker?server可以下載指定文件的Storage?server,參數為文件ID(包含組名和文件名);

2.?Tracker?server返回一臺可用的Storage?server;

3.?Client直接和該Storage?server建立連接,完成文件下載。

?


?

FastDFS從V1.20開始,支持通過HTTP協議下載文件。

1.用戶瀏覽器訪問Tracker?server內置的Web Server,URL中包含文件ID(包含組名和文件名);

2.Tracker?server將這個HTTP請求redirect到一臺可用的Storage?server的Web Server上(可以是apache或nginx);

3.用戶瀏覽器直接與Storage?server的Web Serverr建立連接,完成文件下載。

?

?

4 .客戶端訪問方式

有兩種客戶端訪問方式,一種直接訪問前端tracker server ,tracker_server將請求redirect到后端能提供服務的storage server,storage server收到請求后直接返回文件給客戶端

一種是客戶端直接訪問storage server請求得到結果,storage server 可以使用自己的簡單HTTP服務,也可以用fastdfs-nginx-module和nginx、apache整合提供HTTP服務。

?

5. 服務器端目錄結構
FastDFS服務器端運行時目錄結構如下:
${base_path}
????? |__data:存放狀態文件
?? ?? |__logs:存放日志文件
其中,${base_path}由配置文件中的參數“base_path”設定。
2.2.1 tracker server結構
tracker server目錄及文件結構:
${base_path}
??? |__data
?? ?? |???? |__storage_groups.dat:存儲分組信息
?? ?? |???? |__storage_servers.dat:存儲服務器列表
?? ???? |__logs
???????????? |__trackerd.log:tracker server日志文件
數據文件storage_groups.dat和storage_servers.dat中的記錄之間以換行符(\n)分隔,字段之間以西文逗號(,)分隔。
storage_groups.dat中的字段依次為:
(1) group_name:組名
(2) storage_port:storage server端口號

storage_servers.dat中記錄storage server相關信息,字段依次為:
(1) group_name:所屬組名
?? (2) ip_addr:ip地址
?? (3) status:狀態
(4) sync_src_ip_addr:向該storage server同步已有數據文件的源服務器
(5) sync_until_timestamp:同步已有數據文件的截至時間(UNIX時間戳)
(6) stat.total_upload_count:上傳文件次數
(7) stat.success_upload_count:成功上傳文件次數
(8) stat.total_set_meta_count:更改meta data次數
(9) stat.success_set_meta_count:成功更改meta data次數
(10) stat.total_delete_count:刪除文件次數
(11) stat.success_delete_count:成功刪除文件次數
(12) stat.total_download_count:下載文件次數
(13) stat.success_download_count:成功下載文件次數
(14) stat.total_get_meta_count:獲取meta data次數
(15) stat.success_get_meta_count:成功獲取meta data次數
(16) stat.last_source_update:最近一次源頭更新時間(更新操作來自客戶端)
(17) stat.last_sync_update:最近一次同步更新時間(更新操作來自其他storage server的同步)

storage server
storage server目錄及文件結構:
${base_path}
??? |__data
??? |???? |__.data_init_flag:當前storage server初始化信息
??? |???? |__storage_stat.dat:當前storage server統計信息
??? |???? |__sync:存放數據同步相關文件
??? |???? |???? |__binlog.index:當前的binlog(更新操作日志)文件索引號
??? |???? |???? |__binlog.###:存放更新操作記錄(日志)
??? |???? |???? |__${ip_addr}_${port}.mark:存放向目標服務器同步的完成情況
??? |???? |
??? |???? |__一級目錄:256個存放數據文件的目錄,目錄名為十六進制字符,如:00, 1F
??? |?????????? |__二級目錄:256個存放數據文件的目錄,目錄名為十六進制字符,如:0A, CF
??? |__logs
????????? |__storaged.log:storage server日志文件
.data_init_flag文件格式為ini配置文件方式,各個參數如下:
?? # storage_join_time:本storage server創建時間;
# sync_old_done:本storage server是否已完成同步的標志(源服務器向本服務器同步已有數據);
# sync_src_server:向本服務器同步已有數據的源服務器IP地址,沒有則為空;
# sync_until_timestamp:同步已有數據文件截至時間(UNIX時間戳);

storage_stat.dat文件格式為ini配置文件方式,各個參數如下:
# total_upload_count:上傳文件次數
# success_upload_count:成功上傳文件次數
# total_set_meta_count:更改meta data次數
# success_set_meta_count:成功更改meta data次數
# total_delete_count:刪除文件次數
# success_delete_count:成功刪除文件次數
# total_download_count:下載文件次數
# success_download_count:成功下載文件次數
# total_get_meta_count:獲取meta data次數
# success_get_meta_count:成功獲取meta data次數
# last_source_update:最近一次源頭更新時間(更新操作來自客戶端)
#last_sync_update:最近一次同步更新時間(更新操作來自其他storage server)

binlog.index中只有一個數據項:當前binlog的文件索引號

binlog.###,###為索引號對應的3位十進制字符,不足三位,前面補0。索引號基于0,最大為999。一個binlog文件最大為1GB。記錄之間以換行符(\n)分隔,字段之間以西文空格分隔。字段依次為:
(1)timestamp:更新發生時間(Unix時間戳)
(2)op_type:操作類型,一個字符
(3)filename:操作(更新)的文件名,包括相對路徑,如:5A/3D/FE_93_SJZ7pAAAO_BXYD.S

${ip_addr}_${port}.mark:ip_addr為同步的目標服務器IP地址,port為本組storage server端口。例如:10.0.0.1_23000.mark。文件格式為ini配置文件方式,各個參數如下:
# binlog_index:已處理(同步)到的binlog索引號
# binlog_offset:已處理(同步)到的binlog文件偏移量(字節數)
# need_sync_old:同步已有數據文件標記,0表示沒有數據文件需要同步
# sync_old_done:同步已有數據文件是否完成標記,0表示未完成,1表示已完成
?? # until_timestamp:同步已有數據截至時間點(UNIX時間戳)
# scan_row_count:已掃描的binlog記錄數
# sync_row_count:已同步的binlog記錄數

數據文件名由系統自動生成,包括三部分:當前時間(Unix時間戳)、文件大小(字節數)和隨機數。文件名長度為16字節。文件按照PJW Hash算法hash到65536(256*256,默認配置下)個目錄中分散存儲。

?

?

FastDFS詳解


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲精品电影在线观看 | 一级性视频 | 五月激情久久 | 国产精品视屏 | 无码日韩精品一区二区免费 | 精品无人乱码一区二区三区 | 啊啊啊好紧好爽 | 欧美精品欧美极品欧美激情 | 日韩欧美一区二区三区四区 | 亚洲综合久久久久久中文字幕 | 亚洲入口 | 亚洲日韩欧美视频 | 国产精品一区二区三区久久 | 色综合网址 | 欧美成人精品欧美一级乱黄 | 欧美一级精品片在线看 | 精品黑人一区二区三区 | 久久久久欧美激情 | 久久99国产精品成人欧美 | 波多野结衣免费视频观看 | 热re66久久精品国产99re | 色综合久久98天天综合 | 91精品久久久久久久 | 久久久亚洲伊人色综合网站 | 成人av一区二区三区 | 丁香六月啪 | 91视频免费观看高清观看完整 | 久久中文网 | 色综合在 | 国产视频三区 | 国产精品每日更新 | 国产一区精品视频 | 日本中文字幕免费 | 国产精品久久久久久久一区探花 | 色综合在 | 国产在线精彩视频 | 国产一区在线免费观看 | 久久久久国产一区二区三区 | 日韩精品一区二区三区在线观看 | aⅴ免费在线观看 | 亚洲日本高清成人aⅴ片 |