重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
這篇文章給大家介紹怎么理解FastDFS文件同步機(jī)制,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)建站是專(zhuān)業(yè)的平桂網(wǎng)站建設(shè)公司,平桂接單;提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行平桂網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
FastDFS文件同步采用binlog異步復(fù)制方式。storage server使用binlog文件記錄文件上傳、刪除等操作,根據(jù)binlog進(jìn)行文件同步。binlog中只記錄文件ID和操作,不記錄文件內(nèi)容。下面給出幾行binlog文件內(nèi)容示例:
1572660675 C M00/00/00/oYYBAF285cOIHiVCAACI-7zX1qUAAAAVgAACC8AAIkT490.txt
1572660827 c M00/00/00/oYYBAF285luIK8jCAAAJeheau6AAAAAVgABI-cAAAmS021.xml
1572660911 D M00/00/00/oYYBAF285cOIHiVCAACI-7zX1qUAAAAVgAACC8AAIkT490.txt
1572660967 d M00/00/00/oYYBAF285luIK8jCAAAJeheau6AAAAAVgABI-cAAAmS021.xml
從上面可以看到,binlog文件有三列,依次為時(shí)間戳、操作類(lèi)型和文件ID(不帶group名稱(chēng))。
文件操作類(lèi)型采用單個(gè)字母編碼,其中源頭操作用大寫(xiě)字母表示,被同步的操作為對(duì)應(yīng)的小寫(xiě)字母。文件操作字母含義如下:
C :上傳文件(upload)
D:刪除文件(delete)
A:追加文件(append)
M:部分文件更新(modify)
U:整個(gè)文件更新(set metadata)
T:截?cái)辔募╰runcate)
L:創(chuàng)建符號(hào)鏈接(文件去重功能,相同內(nèi)容只保存一份)
同組內(nèi)的storage server之間是對(duì)等的,文件上傳、刪除等操作可以在任意一臺(tái)storage server上進(jìn)行。文件同步只在同組內(nèi)的storage server之間進(jìn)行,采用push方式,即源頭服務(wù)器同步給本組的其他存儲(chǔ)服務(wù)器。對(duì)于同組的其他storage server,一臺(tái)storage server分別啟動(dòng)一個(gè)線(xiàn)程進(jìn)行文件同步。
文件同步采用增量方式,記錄已同步的位置到mark文件中。mark文件存放路徑為 $base_path/data/sync/。mark文件內(nèi)容示例:
binlog_index=3
binlog_offset=382
need_sync_old=1
sync_old_done=1
until_timestamp=1571976211
scan_row_count=2033425
sync_row_count=2033417
采用binlog的異步復(fù)制方式,必然存在同步延遲的問(wèn)題,比如MySQL的主從數(shù)據(jù)同步。下一篇文章將介紹FastDFS是如何解決文件異步復(fù)制帶來(lái)的延遲問(wèn)題,敬請(qǐng)期待。
關(guān)于怎么理解FastDFS文件同步機(jī)制就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。