0
点赞
收藏
分享

微信扫一扫

zookeeper源码分析系列一开篇基础知识剖析


最近开始对zookeeper源码进行学习,本篇为zookeeper源码学习的开篇,从整体上对zookeeper进行剖析.

一、ZooKeeper总体介绍

1.1、什么是zookeeper

1.2、ZooKeeper 应用场景

二.ZooKeeper源码环境

2.1、ZooKeeper版本选择

2.2、 ZooKeeper源码环境准备

三.ZooKeeper基础之序列化机制

3.1、序列化使用场景

3.2、什么是序列化, 为什么要进行序列化操作

3.3、序列化实现方式

3.3.1、java序列化实现

Java 中进行序列化和反序列化的过程中,主要使用 ObjectInputStream 和 ObjectOutputStream 来进行具体的序列化和反序列化。


3.3.2、hadoop的序列化实现

3.3.3、ZooKeeper 中的序列化机制


序列化的 API 主要在 zookeeper-jute 子项目中。

3.3.4、重点API:

四、ZooKeeper基础之持久化机制

对于只要底层涉及到关于数据的存储,读写操作, 一般都会有一个持久化机制来保证.那么ZooKeeper的数据模型主要涉及两类知识:数据模型持久化机制, 背后是两套API来支撑

ZooKeeper 本身是一个对等架构(内部选举,从所有 learner 中选举一个 leader, 剩下的成为follower)

ZooKeeper的数据模型,抽象出了重要的三个API用来完成数据的管理:

关于 ZooKeeper 中的数据在内存中的组织,其实就是一棵树:

ZooKeeper 的持久化的一些操作接口,都在org.apache.zookeeper.server.persistence 包中。




主要的类的介绍:

五、ZooKeeper基础之网络通信机制

Java IO 有几个种类:

NIO 的三大API:

ZooKeeper 中的通信有两种方式:

两个最重要的API:

关于客户端和服务端的一个定义:谁发请求,谁就是客户端,谁接收和处理请求,谁就是服务端

ServerCnxn实现包:org.apache.zookeeper.server.ServerCnxn


六、Zookeeper基础之Watcher工作机制

客户端的 Watcher 注册:

两条主线

组件说明:

Watcher 主要工作流程:

未完待续,下篇接着继续分析

举报

相关推荐

0 条评论