怎么理解FastDFS文件同步机制

发布时间:2021-11-22 17:40:23 作者:柒染
来源:亿速云 阅读:279

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

   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文件同步机制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. FastDFS 分布式文件存储
  2. 使用docker搭建FastDFS文件系统

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

fastdfs

上一篇:如何解析Spring Cloud 五大核心组件中的Ribbon

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》