ZooKeeper 实战与源码剖析
么敬国
新东方集团首席架构师
18975 人已学习
新⼈⾸单¥59
课程目录
已完结/共 47 讲
ZooKeeper 实战与源码剖析
登录|注册
留言
5
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 35 | ZooKeeper本地存储源码解析
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 什么是ZooKeeper?
04 | ZooKeeper提供什么服务?
05 | 开始使用ZooKeeper
06 | 使用ZooKeeper实现Master-Worker协同
07 | ZooKeeper架构解析
08 | ZooKeeper API简介
09 | ZooKeeper API:Watch示例
10 | 使用ZooKeeper实现分布式队列
11 | 使用ZooKeeper实现分布式锁
12 | 使用ZooKeeper实现选举
13 | 使用Apache Curator简化ZooKeeper开发
14 | 如何安装配置一个ZooKeeper生产环境?
15 | 如何进行ZooKeeper的监控?
16 | 通过ZooKeeper Observer实现跨区域部署
17 | 通过动态配置实现不中断服务的集群成员变更
18 | ZooKeeper节点是如何存储数据的?
19 | 使用ZooKeeper实现服务发现(1)
20 | 使用ZooKeeper实现服务发现(2)
21 | 使用ZooKeeper实现服务发现(3)
22 | Kafka是如何使用ZooKeeper的?
23 | 什么是Paxos协议?
24 | 对比Chubby和ZooKeeper
25 | Raft协议解析
26 | 什么是etcd?
27 | etcd API: KV部分
28 | etcd API:Watch和Lease部分
29 | 使用etcd实现分布式队列
30 | 使用etcd实现分布式锁
31 | 如何搭建一个etcd生产环境?
32 | 存储数据结构之B+tree
33 | 存储数据结构之LSM
34 | 本地存储技术总结
35 | ZooKeeper本地存储源码解析
36 | 网络编程基础
37 | 事件驱动的网络编程
38 | Java的事件驱动网络编程
39 | ZooKeeper的客户端网络通信源码解读
40 | ZooKeeper的服务器网络通信源码解读
41 | ZooKeeper的Request Processor源码解读
42 | Standalone的ZooKeeper是如何处理客户端请求的?
43 | Quorum模式下ZooKeeper节点的Request Processor Pipeline
44 | ZooKeeper的Leader Election
45 | ZooKeeper的Zab协议
46 | 客户端和服务器端交互:Watch和Session
47 | 结课测试&结束语
登录 后留言

全部留言(5)

  • 最新
  • 精选
Geek_ee6004
老师,你好,看完后,有几个问题,希望得到解答 1、snapshot的话,可以理解为是数据库里面的全量备份吗?这个触发的时机都有哪些呢,是否是定期的?如果配置pure事务日志的时候,清除事务日志的时候,会触发snapshot吗? 2、snapshot的保存有什么策略吗?是否系统运行很久后,snapshot会膨胀得很大(存在多个文件)如何去管理呢? 3、snapshot是否可以用来做新服务器的数据恢复?比如我有五个节点的集群,现在坏了3个,还剩2个,希望再加3个,新增的3个节点,如何才能保证与剩余2个节点的数据一致,是通告依次动态添加节点来让zookeeper进行同步刷新。还是说,可以自己从剩余的2个节点中拷贝数据和事务日志,让新节点从快照和事务日志中恢复数据呢?

作者回复: > 1、snapshot的话,可以理解为是数据库里面的全量备份吗? 是数据库里面的全量备份。 > 这个触发的时机都有哪些呢,是否是定期的? snapCount控制生成快照的频率,当日志文件里面的日志记录数大于snapCount / 2 + r.nextInt(snapCount/2)时生成一个快照。细节可以参见SyncRequestProcessor.java的代码。 > 如果配置pure事务日志的时候,清除事务日志的时候,会触发snapshot吗? 不会。但是保证数据恢复需要的快照不会被清除掉。 > 2、snapshot的保存有什么策略吗?是否系统运行很久后,snapshot会膨胀得很大(存在多个文件)如何去管理呢? autopurge.snapRetainCount控制保留多少个快照,autopurge.purgeInterval控制多长时间进行一次清理。如果autopurge.purgeInterval设置成了0,需要手动使用zkCleanup.sh进行清理。 > 3、snapshot是否可以用来做新服务器的数据恢复?比如我有五个节点的集群,现在坏了3个,还剩2个,希望再加3个,新增的3个节点,如何才能保证与剩余2个节点的数据一致,是通告依次动态添加节点来让zookeeper进行同步刷新。还是说,可以自己从剩余的2个节点中拷贝数据和事务日志,让新节点从快照和事务日志中恢复数据呢? 快照的用处之一就是用来做新服务器和leader节点之间的同步。如果剩下的两个节点还是形成了一个运行的ensemble,依次动态添加节点就行了。ZooKeeper会自动进行新节点和leader节点之前的同步。如果新节点落后leader节点不多,就会只从leader节点接收日志记录。否则的话,先从leader节点接收一个快照,再接收后续日志记录。

2019-11-10
2
4
万事屋
我从github上clone的代码没有organic.apache.zookeeper.data这个包?

作者回复: organic.apache.zookeeper.data包里面的代码是由zookeeper.jute文件生成的。

2019-12-24
1
万事屋
想要老师的intellij idea的配色

作者回复: 使用的Darcula主体。

2019-12-24
不二
老师您好,最近公司zk集群挂掉了,由于业务紧急,重启了集群,想请教老师,zk挂掉一些常见的原因有哪些

作者回复: 1. 网络原因导致ZooKeeper节点互相连不上。 2. 多个ZooKeeper节点的失败。

2019-10-25
飞翔
老师 想问个问题 如果zookeeper 创造了一个snapshot 之后比如snapshot中的最大zxid是a, 那么他会不会在snapshot完成后把小于等于a的transanction log删除, 只保留zxid大于a的transanction log?
2019-10-22
收起评论