Zookeeper
文章平均质量分 64
Zookeeper
hakusai22
感谢关注,csdn已经不上线了,不会在更新了。 csdn都是个人在大二到大四期间学习的笔记,有些内容可能并不是正确的,请理解下,如果想咨询up的话技术/生活/未来规划,wx: hakusai22.
展开
-
Zookeeper学习----客户端初始化源码解析
客户端初始化源码解析一. 客户端初始化源码解析①. ZkCli.sh②. 创建 ZookeeperMain③. 连接 zk④. 创建 ZooKeeperAdmin 对象⑤. 初始化监听器+解析连接地址+创建通信⑥. 客户端与服务器端通信的终端⑦. 创建两个线程⑧. 启动连接服务端⑨. 建立连接⑩. 接收服务端响应,并处理十一. 执行run十二. executeLine(line)一行一行读取命令十三. 处理客户端命令processCmd()十四. 解析命令processZKCmd()一. 客户端初始化源码原创 2021-07-26 22:25:43 · 537 阅读 · 2 评论 -
Zookeeper学习----服务端 Leader和Follower 启动
服务端 Leader和Follower 启动一. 服务端Leader启动二. 服务端 Follower 启动一. 服务端Leader启动二. 服务端 Follower 启动原创 2021-07-26 22:18:30 · 176 阅读 · 0 评论 -
Zookeeper学习----Follower 和 Leader 状态同步源码
Follower 和 Leader 状态同步源码一. Follower 和 Leader 状态同步总结二. Follower和Leader状态同步源码解析①. Leader操作1. Leader.lead()等待接收 follower 的状态同步申请2. 等待其他 follower 节点向 leader 节点发送同步状态3. 创建 LearnerHandler4. 从网络中接收消息,并反序列化为 packet5. Leader 根据从 Follower 获取 sid 和旧的 epoch,构建新的 epo原创 2021-07-26 22:14:15 · 909 阅读 · 5 评论 -
Zookeeper学习----Zookeeper选举源码解析
Zookeeper选举源码解析一. Zookeeper选举机制——第一次启动二. Zookeeper选举机制——非第一次启动三. Zookeeper选举源码解析①. 选举准备1. startLeaderElection()选举准备2. createElectionAlgorithm()创建选举算法实例3. 创建 QuorumCnxnManager,负责选举过程中的所有网络通信4. 启动监听线程listener.start()5. 准备开始选举6. 创建各种队列②. 选举执行1. super.start()原创 2021-07-26 22:00:09 · 750 阅读 · 4 评论 -
Zookeeper学习----Zookeeper服务端加载数据源码解析
Zookeeper服务端加载数据源码解析一. Zookeeper服务端加载数据源码解析①. quorumPeer.start();②. loadDataBase()③. loadDataBase()④. restore()⑤. deserialize()⑥. deserializeSnapshot⑦. 数据恢复编辑日志⑧. txnLog.read()⑨. processTransaction()⑩. processTxn()一. Zookeeper服务端加载数据源码解析①. quorumPeer原创 2021-07-26 21:45:02 · 163 阅读 · 0 评论 -
Zookeeper学习----Zookeeper服务端初始化源码解析
Zookeeper服务端初始化源码解析一. Zookeeper服务端初始化源码解析①. ZK 服务端启动脚本分析②. ZK 服务端启动入口③. 解析参数1. initializeAndRun() 初始化节点并运行2. parse()解析参数,zoo.cfg 和 myid3. parseProperties(cfg)解析配置文件4. setupQuorumPeerConfig()6. setupMyId() 设置myid④. 过期快照删除1. new QuorumPeerConfig()2. getSnap原创 2021-07-26 21:36:09 · 222 阅读 · 0 评论 -
Zookeeper学习----Zookeeper持久化+序列化源码
Zookeeper持久化源码一. 持久化源码①. 快照②. 操作日志二. 序列化源码①. 序列化和反序列化支持的数据类型②. 序列化和反序列化方法一. 持久化源码Leader 和 Follower 中的数据会在内存和磁盘中各保存一份。所以需要将内存中的数据持久化到磁盘中。①. 快照②. 操作日志二. 序列化源码①. 序列化和反序列化支持的数据类型②. 序列化和反序列化方法...原创 2021-07-26 21:20:44 · 166 阅读 · 0 评论 -
Zookeeper学习----Zookeeper 是如何保证数据一致性
Zookeeper 是如何保证数据一致性一. Paxos 算法①. Paxos介绍②. Paxos算法描述③. Paxos算法流程二. ZAB 协议①. ZAB 算法介绍②. Zab 协议模式:消息广播③. Zab 协议模式:崩溃恢复_异常假设④. Zab 协议模式:崩溃恢复_Leader选举④. Zab 协议模式:崩溃恢复_数据恢复三. CAP理论一. Paxos 算法①. Paxos介绍Paxos算法:一种基于消息传递且具有高度容错特性的一致性算法。Paxos算法解决的问题:就是如何快速原创 2021-07-26 21:15:33 · 248 阅读 · 0 评论 -
Zookeeper学习----Curator 框架实现分布式锁案例
Curator 框架实现分布式锁案例一. 自定义ZooKeeper分布式锁存在的问题二. Curator框架的使用①. 添加依赖②. 代码实现③. 测试Curator 分布锁一. 自定义ZooKeeper分布式锁存在的问题会话连接是异步的,需要自己去处理。比如使用 CountDownLatchWatch 需要重复注册,不然就不能生效开发的复杂性还是比较高的不支持多节点删除和创建。需要自己去递归二. Curator框架的使用-Curator 是一个专门解决分布式锁的框架。①. 添加依赖原创 2021-07-01 19:06:46 · 245 阅读 · 1 评论 -
Zookeeper学习----ZooKeeper分布式锁自定义实现案例
ZooKeeper分布式锁案例一. 分布式锁介绍二. 原生 Zookeeper 实现分布式锁案例①. DistributedLock 分布锁②. DistributedLockTest 分布式锁测试③. 查看测试效果一. 分布式锁介绍比如说"进程1"在使用该资源的时候,会先去获得锁,"进程 1"获得锁以后会对该资源保持独占,这样其他进程就无法访问该资源,"进程 1"用完该资源以后就将锁释放掉,让其他进程来获得锁,那么通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。那么我原创 2021-07-01 18:51:51 · 126 阅读 · 0 评论 -
Zookeeper学习----服务器动态上下线监听案例
服务器动态上下线监听案例一. 需求分析二. 代码实现①. 先在集群上创建/servers 节点②. DistributeClient分布式客户端③. DistributeServer分布式服务端④. 使用客户端进行测试⑤. 使用DistributeServer进行测试一. 需求分析二. 代码实现①. 先在集群上创建/servers 节点 ./zkCli.sh -server zookeeper1:2181 进入客户端操作②. DistributeClient分布式客户端package原创 2021-07-01 18:39:09 · 124 阅读 · 0 评论 -
Zookeeper学习----Java整合Zookeeper
Java整合Zookeeper一. 添加pom依赖文件二. log4j.properties配置文件三. 创建 ZooKeeper 客户端①. 客户端连接配置②. 创建子节点③. 获取子节点并监听节点变化④. 判断 Znode 是否存在一. 添加pom依赖文件 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeepe原创 2021-07-01 18:27:01 · 305 阅读 · 0 评论 -
Zookeeper学习----zk客户端命令行操作
zk客户端命令行操作一. znode 节点数据信息①. 启动客户端集群②. 显示所有操作命令③. 查看当前znode中所包含的内容④. 查看当前节点详细数据二. 节点类型(持久/短暂/有序号/无序号)①. 创建永久节点②. 创建带序号的节点③. 创建临时节点④. 获取节点的信息⑤. 修改节点信息⑥. 删除节点/目录节点⑦. 查看节点的状态信息三. 监听器原理①. 监听节点的变化1. 节点的值变化监听2. 节点的值变化监听一. znode 节点数据信息①. 启动客户端集群./zkCli.sh -ser原创 2021-07-01 18:13:30 · 747 阅读 · 0 评论 -
Zookeeper学习----zk集群搭建
Zookeeper集群搭建一. Zookeeper介绍①. 概念②. 数据结构③. 应用场景1. 统一命名服务2. 统一配置管理3. 统一集群管理4. 软负载均衡二. Zookeeper单机版安装①. 安装前准备②. zoo.cfg配置修改③. 创建 zkData 文件夹④. 配置文件修改存储路径⑤. 启动Zookeeper服务端⑥. 启动Zookeeper客户端⑦. 查看Zookeeper状态/停止服务⑧. 配置参数解读三. Zookeeper 集群操作①. 安装前准备②. 配置服务器编号③. 配置zoo原创 2021-07-01 17:48:52 · 301 阅读 · 0 评论