ZooKeeper运维——数据备份与恢复(事务日志+快照日志,万字总结,你想要的都有

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

    • (1)只读请求本机处理
  • (2)事务请求转发给Leader协调

  • 2、两阶段提交+过半数机制

    • (1)第一阶段提交事务请求
  • (2)第二阶段执行事务提交

  • 3、ZXID

  • 三、事务日志

    • 1、事务日志存放目录
  • 2、文件大小和后缀名

    • (1)磁盘空间预分配
  • (2)ZXID作为后缀名

  • 3、事务日志可视化

  • 4、相关配置项

    • (1)dataLogDir
  • (2)preAllocSize

  • 5、什么时候创建新日志文件

  • 四、快照日志

    • 1、文件存储
  • 2、快照日志可视化

  • 3、相关配置

    • (1)snapCount
  • (2)日志清理

  • 4、什么时候触发数据快照

    • (1)事务日志写入数量达到阈值snapCount
  • (2)新Leader同步数据

  • 五、ZooKeeper启动数据初始化和同步

    • 1、加载并解析快照日志文件
    • (1)加载最新快照文件
  • (2)解析快照文件

  • (3)获取最新ZXID(zxid_for_snap)

  • 2、事务日志进行数据修正

    • (1)获取zxid_for_snap之后提交的事务
  • (2)数据修正

  • (3)获取最新ZXID校验epoch

  • 3、数据同步

    • (1)Learner 向 Leader 发送 ACKEPOCH
  • (2)Leader 初始化 peerLastZxid、minCommittedLog、maxCommittedLog

  • (3.1)直接差异化同步(DIFF)

  • (3.2)先回滚再差异化同步(TRUNC+DIFF)

  • (3.3)仅回滚同步(TRUNC)

  • (3.4)全量同步(SNAP)

  • 六、数据备份与恢复流程

    • 1、为什么需要快照日志
  • 2、数据备份策略

  • 3、数据恢复

  • 七、要点总结

  • 八、参考资料

一、前言


ZooKeeper存储数据的底层数据结构是LSMLog Structured Merge-tree)。基于LSM 实现的存储引擎有两个显著特点:MVCCMulti-Version Concurrency Control)和存储KV,即所有的更新操作,都是先追加事务日志,然后把key-value存储到内存数据库,注意不是replace,而是保存对一个key-value的多个版本。

ZooKeeper的数据备份与恢复,就用到了其事务日志文件和快照日志文件。快照日志文件是什么概念?为什么要有快照日志文件?

如何做数据备份?如何恢复数据?解开这些疑惑,需要深入了解ZooKeeper底层是如何保证数据一致性和集群启动时如何做初始化数据加载和同步。

我的心冰冰的

二、ZooKeeper顺序一致性


ZooKeeper 专门设计了 ZabZookeeper Atomic Broadcast)协议作为其数据一致性协议。所有写操作和客户端会话管理都以事务方式由 Leader 统一协调,使用两阶段提交的方式,保证数据一致性。

1、ZooKeeper如何处理请求

客户端和 ZooKeeper 集群中的任一服务建立连接,即可发送请求,请求主要包括两类,只读请求和事务请求。

(1)只读请求本机处理

只读请求包括 getDatagetChildrenexists 等,zk服务器接收到只读请求无需转发给 Leader,可直接本机处理响应。

(2&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值