怎么理解FastDFS文件同步机制

这篇文章给大家介绍怎么理解FastDFS文件同步机制,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联建站是专业的平桂网站建设公司,平桂接单;提供成都网站制作、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行平桂网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

   FastDFS文件同步采用binlog异步复制方式。storage server使用binlog文件记录文件上传、删除等操作,根据binlog进行文件同步。binlog中只记录文件ID和操作,不记录文件内容。下面给出几行binlog文件内容示例:

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文件有三列,依次为时间戳、操作类型和文件ID(不带group名称)。

  文件操作类型采用单个字母编码,其中源头操作用大写字母表示,被同步的操作为对应的小写字母。文件操作字母含义如下:

    C :上传文件(upload)

    D:删除文件(delete)

    A:追加文件(append)

    M:部分文件更新(modify)

    U:整个文件更新(set metadata)

    T:截断文件(truncate)

    L:创建符号链接(文件去重功能,相同内容只保存一份)

  同组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行。文件同步只在同组内的storage server之间进行,采用push方式,即源头服务器同步给本组的其他存储服务器。对于同组的其他storage server,一台storage server分别启动一个线程进行文件同步。

  文件同步采用增量方式,记录已同步的位置到mark文件中。mark文件存放路径为 $base_path/data/sync/。mark文件内容示例:

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的异步复制方式,必然存在同步延迟的问题,比如MySQL的主从数据同步。下一篇文章将介绍FastDFS是如何解决文件异步复制带来的延迟问题,敬请期待。

关于怎么理解FastDFS文件同步机制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


名称栏目:怎么理解FastDFS文件同步机制
URL分享:http://scyanting.com/article/jppspc.html