【Zookeeper】源码分析目录

Zookeeper源码分析目录如下

  1. 【Zookeeper】源码分析之序列化

  2. 【Zookeeper】源码分析之持久化(一)之FileTxnLog

  3. 【Zookeeper】源码分析之持久化(二)之FileSnap

  4. 【Zookeeper】源码分析之持久化(三)之FileTxnSnapLog

  5. 【Zookeeper】源码分析之Watcher机制(一)

  6. 【Zookeeper】源码分析之Watcher机制(二)之WatchManager

  7. 【Zookeeper】源码分析之Watcher机制(三)之ZooKeeper

  8. 【Zookeeper】源码分析之请求处理链(一)

  9. 【Zookeeper】源码分析之请求处理链(二)之PrepRequestProcessor

  10. 【Zookeeper】源码分析之请求处理链(三)之SyncRequestProcessor

  11. 【Zookeeper】源码分析之请求处理链(四)之FinalRequestProcessor

  12. 【Zookeeper】源码分析之网络通信(一)

  13. 【Zookeeper】源码分析之网络通信(二)之NIOServerCnxn

  14. 【Zookeeper】源码分析之网络通信(三)之NettyServerCnxn

  15. 【Zookeeper】源码分析之Leader选举(一)

  16. 【Zookeeper】源码分析之Leader选举(二)之FastLeaderElection

  17. 【Zookeeper】源码分析之服务器(一)

  18. 【Zookeeper】源码分析之服务器(二)之ZooKeeperServer

  19. 【Zookeeper】源码分析之服务器(三)之LeaderZooKeeperServer

  20. 【Zookeeper】源码分析之服务器(四)之FollowerZooKeeperServer

  21. 【Zookeeper】源码分析之服务器(五)之ObserverZooKeeperServer

时间: 2024-12-31 05:19:06

【Zookeeper】源码分析目录的相关文章

zookeeper源码分析之一客户端发送请求流程

znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的集中管理,集群管理,分布式锁等等. 知识准备: zookeeper定义的状态有: Unknown (-1),Disconnected (0),NoSyncConnected (1),SyncConnected (3),AuthFailed (4),ConnectedReadOnly (5),Sasl

Zookeeper 源码分析-启动

Zookeeper 源码分析-启动 博客分类: Zookeeper 本文主要介绍了zookeeper启动的过程 运行zkServer.sh start命令可以启动zookeeper.入口的main函数在类中QuorumPeerMain. main函数主要调用了runFromConfig函数,创建了QuorumPeer对象,并且调用了start函数,从而启动了zookeeper. Java代码   public class QuorumPeerMain { protected QuorumPeer

zookeeper源码分析之五服务端(集群leader)处理请求流程

leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcessor -> ProposalRequestProcessor ->CommitProcessor -> Leader.ToBeAppliedRequestProcessor ->FinalRequestProcessor 具体情况可以参看代码: @Override protected v

zookeeper源码分析之一服务端处理请求流程

上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析各自一下消息处理过程: 前文可以看到在 1.在单机情况下NettyServerCnxnFactory中启动ZookeeperServer来处理消息: public synchronized void startup() { if (sessionTracker == null) { createSe

storm操作zookeeper源码分析-cluster.clj

storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中).backtype.storm.cluster定义了两个重要protocol:ClusterState和StormClusterState.clojure中的protocol可以看成java中的接口,封装了一组方法.ClusterState协议中封装了一组与zookeeper进行交互的基础函数,如获取子节点函数,获取子节点数据函数等,ClusterState协

zookeeper源码分析三LEADER与FOLLOWER同步数据流程

根据二)中的分析,如果一台zookeeper服务器成为集群中的leader,那么一定是当前所有服务器中保存数据最多的服务器,所以在这台服务器成为leader之后,首先要做的事情就是与集群中的其它服务器(现在是follower)同步数据,保证大家的数据一致,这个过程完毕了才开始正式处理来自客户端的连接请求. 首先来看Leader做的工作:二)中提到的同步数据时使用的逻辑时钟,它的初始值是0,每次选举过程都会递增的,在leader正式上任之后做的第一件事情,就是根据当前保存的数据id值,设置最新的逻

ZooKeeper源码分析:Quorum请求的整个流程(转)

Quorum请求是转发给Leader处理,并且需要得一个Follower Quorum确认的请求.这些请求包括: 1)znode的写操作(OpCode.create,OpCode.delete,OpCode.setData,OpCode.setACL) 2)Session的创建和关闭操作(OpCode.createSession和OpCode.closeSession) 3)OpCode.multi操作. 本文分析了Client, Follower和Leader协同完成Quorum请求的过程.另

zookeeper源码分析(一) 工作原理

来自:http://www.codedump.info/?p=207 阅读zookeeper代码一段时间(注:是很长一段时间,断断续续得有半年了吧?)之后,我要开始将一些积累下来的东西写下来了,鉴于我的java是这个过程中现学的,难免有说的不对的地方,所以如果有的话,请指教. 阅读时参考的版本是3.3.3. 简单的说一下zookeeper工作的过程,如果对这个过程还不太清楚,或者说对它如何使用等不太清楚的,可以参考一下其他的文章,比如这篇,这一系列的文章将不讲解它如何使用(实际上我也没有在具体项

zookeeper源码分析二FASTLEADER选举算法

如何在zookeeper集群中选举出一个leader,zookeeper使用了三种算法,具体使用哪种算法,在配置文件中是可以配置的,对应的配置项是”electionAlg”,其中1对应的是LeaderElection算法,2对应的是AuthFastLeaderElection算法,3对应的是FastLeaderElection算法.默认使用FastLeaderElection算法.其他两种算法我没有研究过,就不多说了. 要理解这个算法,最好需要一些paxos算法的理论基础. 1) 数据恢复阶段首