FastDFS文件同步机制简介

2023-11-16

FastDFS文件同步机制简介

本篇文章转载于FastDFS作者 余庆 大佬的 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 是如何解决文件异步复制带来的延迟问题,敬请期待。

最后留给大家一个问题,为什么 binlog 记录的文件操作类型有大小写的两套呢(如 CcDd 等)?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FastDFS文件同步机制简介 的相关文章

  • Missing artifact org.csource:fastdfs-client-java:jar:1.27-SNAPSHOT

    解决Maven无法下载fastdfs client java依赖 xff0c Dependency 39 org csource fastdfs client java 1 27 SNAPSHOT 39 not found 因为fastdf
  • com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:2,错误信息:找不到节点或文件

    我的原因是因为docker中Tracker没有启动起来 xff0c 重新启动后系统正常
  • mysql查看binlog日志内容

    mysql的binlog日志位置可通过show variables like 39 datadir 39 查看 xff0c 直接打开无法查看 xff0c 要看其内容2个办法 xff1a 1 登录到mysql查看binlog 只查看第一个bi
  • mysql binlog的使用

    本文介绍mysql binlog的使用 xff0c 包括开启 xff0c 关闭 xff0c 查看状态 xff0c 刷新 xff0c 清空 xff0c 查看执行的sql语句等操作 并对5 7及旧版本的设置加以说明 xff0c 方便大家学习 m
  • Mysql主从不同步解决方法 binlog三种模式的区别

    Mysql主从不同步解决方法 主从同步配置好后 xff0c 运行了一时间 xff0c 出现了不同步现象 xff0c 用命令检查 xff0c 看到从上报下面错误 xff1a msyq gt show slave status G Last E
  • FastDFS是如何解决数据一致性问题的?

    FastDFS是如何解决数据一致性问题的 本篇文章转载于 FastDFS 作者 余庆 大佬的 FastDFS分享与交流 公众号 保证数据一致性是分布式系统面临的最大难题 尤其是要做到数据强一致性 FastDFS 作为一款分布式文件系统 是如
  • 腾讯云服务器ubuntu18.04搭建FastDFS文件服务器

    腾讯云服务器ubuntu18 04搭建FastDFS文件服务器 FastDFS简介 FastDFS是用c语言编写的一款开源的分布式文件系统 FastDFS为互联网量身定制 充分考虑了冗余备份 负载均衡 线性扩容等机制 并注重高可用 高性能等
  • Springboot 封装Fastdfs 功能模块

    整体项目结构 第一步 BuleSky 的pom xml 文件
  • FastDFS分布式文件系统入门(二)-FastDFS安装配置详解

    一 FastDFS安装配置 1 下载 需要如下的安装包 包名 下载地址 fastdfs100 fastdfs V6 06 zip https gitee com fastdfs100 fastdfs fastdfs100 libfastco
  • FastDFS使用中的几个常见问题

    FastDFS使用中的几个常见问题 本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号 1 FastDFS适用的场景以及不适用的场景 FastDFS 是为互联网应用量身定做的一套分布式文件存储系统 非常适合用来
  • 已安装的nginx,添加新模块fastdfs-nginx-module

    1 先看nginx的安装位置和运行目录 不清楚的可以使用命令查看 find name nginx 2 确定安装目录和运行目录后 查看当前nginx的安装路径及已安装的模块等信息 usr local nginx sbin nginx V 3
  • docker安装fastdfs

    一 准备docker环境 二 搜索fastdfs镜像 三 拉取镜像 docker pull delron fastdfs 选取delron fastdfs镜像的原因是包含了nginx不用自己安装nginx转发 也可以选择qbanxiaoli
  • Docker搭建FastDFS

    Docker搭建FastDFS 1 搜索镜像 docker search fastdfs root localhost data docker search fastdfs NAME DESCRIPTION STARS OFFICIAL A
  • FastDFS分布文件系统Java客户端使用

    原文链接 http blog csdn net xyang81 article details 52847311 FastDFS分布式文件系统服务安装和使用请参考上一篇文章 FastDFS分布式文件系统安装与使用 单节点 担建环境 官网Ja
  • ubuntu 安装Fastdfs

    安装fastdfs依赖插件libfastcommon 下载 https github com happyfish100 libfastcommon archive V1 0 39 tar gz 创建 usr local software 目
  • FastDFS的Tracker及Storage节点添加及删除

    1 增加Storage节点 通过配置 自动加入 1 安装Storage并配置mod fastdfs conf及storage conf 设置fdfs storaged及nginx自启动 2 启动新加的storage节点 会自动同步相同gro
  • FastCFS binlog机制简介

    FastCFS binlog机制简介 本篇文章转载于 FastCFS 作者 余庆 大佬的 FastDFS分享与交流 公众号 FastCFS 采用经典的 Master Slave 结构及数据同步复制的做法 如果 slave 在线 master
  • FastDFS文件同步机制简介

    FastDFS文件同步机制简介 本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号 FastDFS 文件同步采用 binlog 异步复制方式 storage server 使用 binlog 文件记录文件上传
  • fastdfs-client使用教程

    FastDfs客户端使用文档 fastdfs client支持框架 fastdfs client目前支持的框架有springboot1 x springboot2 x springmvc 添加fastdfs client依赖 springb
  • MySQL 二进制日志复制:可以设置为忽略错误吗?

    我正在运行一个主从 MySQL 二进制日志复制系统 唷 对于某些数据 该系统不同步 这意味着主服务器比从服务器保存更多的数据 但是从站经常因为最轻微的 MySQL 错误而停止 这可以禁用吗 可能是复制从站忽略复制错误或某些类似的 my cn

随机推荐

  • java的反射机制Class.forName()

    Class forName 方法的作用 就是初始化给定的类 1 Class 类概念 Class 也是一个 Java 类 保存的是与之对应 Java 类的 meta信息 元信息 用来描述这个类的结构 比如描述一个类有哪些成员 有哪些方法等 一
  • 【网易严选】iOS持续集成打包(Jenkins+fastlane+nginx)

    本文来自网易云社区 作者 孙娇 严选iOS客户端的现有打包方式是通过远程连接打包机执行脚本去打包 打完包会输出相应的ipa的二维码 扫一扫二维码可以安装 但是随着测试队伍的壮大 外包同学越来越多 在打包机输入命令的方式可用度越来越低 手动输
  • 170_web服务器_两个需求【1-】获取虚拟机上数据库数据显示到网页 【2-】网页下拉框数据,发送到MQTT服务器上【html实现网页,.js实现内在,.cgi实现内核】

    实例 html 两个功能一起实现在网页 表面
  • 三种方法带你新建一个SpringBoot项目

    SpringBoot 的设计目的是简化Spring的搭建与开发 尤其是没有了好多繁琐的配置 本篇文章主要介绍如何搭建SpringBoot项目 从官网创建 访问Spring的官方网站 https start spring io 如下 只需要简
  • 小学生创客教学

    在这个互联网 的时代 我们的孩子接受到的信息越来越多 创课要彻底改变传统课程存在的过分传授 形式固化 单调无趣的现状 给学生更多自由探索的空间 激发孩子内在的创造潜能 格物斯坦认为 学生不再是被动的学习者 而是可以像科学家一样以研究的方式去
  • 经典面试题 TCP和UDP有什么区别?

    经典面试题 TCP和UDP有什么区别 解决面试题 斩获心仪的 Offer 文章目录 经典面试题 TCP和UDP有什么区别 一 TCP和UDP是什么 二 TCP和UDP有什么区别 1 TCP和UDP区别总结 2 TCP三次握手和四次挥手 2
  • 数据库的用户信息表设计

    用户信息表在很多情况下都需要有 属于一个项目开篇的基础 这个不搞好以后就会给自己带来麻烦 我参考该博文设计 浅谈数据库用户表结构设计 只是有些地方我实践之后需要补充一下 user表字段 user auth表 要补充说明的是 nickname
  • 2.Java设计模式-----抽象工厂模式(Abstract Factory Pattern)

    抽象工厂模式 Abstract Factory 是23种设计模式之一 抽象工厂模式是这样子定义的 抽象工厂模式 提供一个创建一系列相关或互相依赖对象的接口 而无需指定它们具体的类 在学习抽象工厂模式之前 最好熟悉简单工厂模式以及工厂方法模式
  • java微信小程序授权 获取用户信息、获取openid和session_key 获取用户unionId、(用户数据的签名验证和加解密)JAVA版

    更新 在18年4月25日小程序做了一次更新 小程序授权不再支持直接弹框获取用户信息授权了 微信小程序授权 获取用户信息里也做了说明 以下代码也已经做了更改 在实际的小程序开发中 往往需要用户授权登陆并获取用户的数据 小程序可以通过微信官方提
  • 贪吃蛇的初步尝试

    1 首先让贪吃蛇动起来 每输入一个方向字符 然后贪吃蛇朝那个方向移动一格 用 kbhit 函数可以让它朝一个方向一直移动 但那速度极快 于是用 speed 函数调整它的速度 达到每秒移动一格的效果 每一步的移动都用一个 for 循环实现 让
  • 学习如何使用最强大的 JavaScript 函数

    今天你将学习如何使用 最强大的 JavaScript函数 数组归约 Array reduce是最强大的 JavaScript Function 时期 reduce有什么作用 为何如此强大 这是reduce的技术定义 Array protot
  • Mybatis高性能批量插入方法

    当使用Mybatis大量插入时可以利用MySQL语句的特性使原来多次请求插入的语句变成一次请求 以此提高插入效率 一般的插入方式 1000条数据 一条一条的插入 Test public void testInsert SqlSession
  • 【rust/egui】(十)使用painter绘制一些图形—connections

    说在前面 rust新手 egui没啥找到啥教程 这里自己记录下学习过程 环境 windows11 22H2 rust版本 rustc 1 71 1 egui版本 0 22 0 eframe版本 0 22 0 上一篇 这里 绘制连接 在上一节
  • Invalid attempt to spread non-iterable instance

    这一类错误大概率是你的延展运算符附近除了错误 比如我的就是应为在一个对象前面用了延展运算符 我将数组的中括号写成了大括号 就报了这个错误
  • Mac 系统的 MySQL 如何修改密码(保姆级别教程)

    要修改 Mac 系统上的 MySQL 密码 可以按照以下步骤进行 打开终端 以管理员身份登录到 MySQL 服务器 sudo mysql u root p 输入管理员密码 切换到 MySQL 数据库 use mysql 查看当前用户列表 s
  • 记录的Android开发过程中遇到的问题。

    180508 更新 网上下载demo 本地studio版本和demo版本不一致处理方式 修改两处 1 项目的build gradle 里面classpath 2修改项目目录下 gradle gt wrapper gt gradle wrap
  • openpcdet验证已训练好权重文件

    python tools test py cfg file 配置文件路径 ckpt dir 权重文件所在文件夹路径 eval all
  • Java静态修饰符static

    1 Satic注意事项 1 Static修饰的方法可以被类调用或者直接使用 而未被static修饰的方法是实例方法 属于对象的 必须用对象调用 2 类在方法区 方法在栈内存 对象在堆内存 3 静态只能访问静态 不能访问实例 实例可以访问静态
  • windows7的5次shift实验

    原理 在win7的登录界面连续按5次shift键会弹出程序c windows system32 sethc exe 在开启win7时会出现正常登录和尝试修复 在尝试修复界面利用txt文本打开C盘 修改cmd exe为sethc exe 并将
  • FastDFS文件同步机制简介

    FastDFS文件同步机制简介 本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号 FastDFS 文件同步采用 binlog 异步复制方式 storage server 使用 binlog 文件记录文件上传