![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zookeeper源码阅读
文章平均质量分 72
potxxx
>_<
展开
-
ZooKeeper源码阅读(五)---服务端集群流程
从本文开始正式开始学习zk中核心集群的实现原理。1、单机调试集群方法首先创建三个zoodata目录,并将默认zoo.cfg文件拷贝进去单独配置每个cfg文件:dataDir[持久化文件与myid文件保存的地址,每个配置文件均不同],clientPort[客户端接口端口,单机测试保证均不相同],server[集群服务地址,配置相同],最后在各自的dataDir目录下创建myid文件[内容为0,1,2编号,与cfg里server.编号 相同]。之后就可以idea配置不同的启动参数,进行..原创 2021-09-22 19:33:11 · 210 阅读 · 0 评论 -
ZooKeeper源码阅读(四)---服务端单机流程
本章我们先来看看单机服务端处理流程,最后再去学习集群模式1、服务启动服务端入口类为QuorumPeerMain,下面为启动流程 1、main.initializeAndRun(args); 2、initializeAndRun(){ if (args.length == 1 && config.isDistributed()) { runFromConfig(config); } else ...原创 2021-09-22 12:44:42 · 270 阅读 · 0 评论 -
ZooKeeper源码阅读(三)---客户端watch机制
上一章中我们讨论了zkcli的普通请求流程,这次我们使用 get -w / 命令,看看上一章被忽略的流程1、zkWatchManager 首先我们回顾一下zkcli连接的建立,最终的io都是通过clientCnxn对象完成,下面是它的构造函数: public ClientCnxn( String chrootPath, HostProvider hostProvider, int sessionTimeout, ...原创 2021-09-19 22:05:13 · 216 阅读 · 0 评论 -
ZooKeeper源码阅读(二)---客户端流程
由于zk客户端流程对于zk单机服务或者集群基本一致,所以先从zk客户端源码开始学习。1、客户端启动首先我们启动一个单机的server,然后给ZookeeperMain打上断点进入调试//成员变量 private static final Logger LOG = LoggerFactory.getLogger(ZooKeeperMain.class);//当前支持解析的command命令如ls等 static final Map<String, String>.原创 2021-09-19 19:44:24 · 215 阅读 · 0 评论 -
ZooKeeper源码阅读(一)---编译、启动、调试
打算开个新坑,深入完整阅读一个工业级项目源码阅读本文最好有一定的zookeeper使用经验一、源码下载首先下载zookeeper的源码,建议直接从apache主页下载Source Release包获得源码工程。ps:网上有不少教程从github/zookeeper拉取代码编译,本人使用这种方法均不能直接成功,有不少坑待解决,而从apache主页下载的包可以直接build成功,仅供参考。二、项目编译 本文编译于2021.9.19的apache-zoo...原创 2021-09-19 11:48:52 · 584 阅读 · 0 评论