![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zookeeper
我是小水杯
坚持就是胜利
展开
-
zookeeper源码解析-四字命令
1.引入zookeeper支持通过命令获取其服务的运行状态,这就是传说中的“四字命令”。由于这些命令是通过TCP/UDP协议传输的,所以不能在zookeeper的cli命令下使用,常用的使用方式是用工具nc,比如:echo stat | nc 127.0.0.1 2181。(如果报命令不存在,需要使用yum install nc安装)2. 命令介绍ZooKeeper四字命令功能描述...原创 2020-03-22 12:11:24 · 590 阅读 · 0 评论 -
zookeeper源码解析-节点清理
zk版本:3.5.61. 引入在3.5.6版本中,有两种节点需要清理:临时节点(会话结束,会被清除)和容器节点(如果没有子节点,会被清理)。2. 节点清理清理节点的操作是通过ContainerManager类完成,在单机启动的博客中其他可以看到它的身影。ZooKeeperServerMain.java------------------------public void runF...原创 2020-03-21 23:09:26 · 1182 阅读 · 0 评论 -
zookeeper源码解析-单机处理客户端请求
1.引入zk单机服务端虽然在实际生产使用中不可能碰到,但是用于接下来分析zk集群服务端有很大用处,我们秉承循序渐进的方式,先介绍一下单机服务端的启动和处理流程2.单机服务器启动在单机启动过程中,会创建服务端连接对象,用于处理客户端的请求。其处理过程,可以从以下代码开始介绍。ZooKeeperServerMain.java------------------------- publ...原创 2019-12-29 16:34:39 · 269 阅读 · 0 评论 -
zookeeper源码解析-客户端请求流程
1.引入前面介绍了客户端创建流程,最终调用了ClientCnxn.start方法启动了两个重要的线程SendThread和eventThread,这两个就是客户端处理请求的关键所在,所以在本篇中会逐一介绍这两个线程的作用。为了方便介绍客户端请求处理过程,我们接着前面介绍的cli解析分析,当前以delete操作为例,最终介绍到了 DeleteRequest request = n...原创 2019-12-27 23:30:22 · 375 阅读 · 0 评论 -
zookeeper源码解析-zk集群启动
1.引入在前面我们已经介绍了zk的单机启动,其过程也是比较简单,主要是启动zk服务,zk admin服务,创建管理快照和事务日志的FileTxnSnapLog对象等。现在我们来说一下zk集群启动过程,这也是zk生产环境启动服务的方式。2.从QuorumPeerMain.main说起单机启动和集群启动的都是从QuorumPeerMain.main这个方法开始,只是由于配置文件不同,最终会运行在...原创 2019-12-16 23:23:41 · 344 阅读 · 0 评论 -
zookeeper源码解析目录
zookeeper源码解析-单机启动zookeeper源码解析-定时清理zk数据zookeeper源码解析-admin服务zookeeper源码解析-客户端创建流程zookeeper源码解析-命令行解析原创 2019-12-15 13:27:17 · 199 阅读 · 0 评论 -
zookeeper源码解析-命令行解析
zk版本:3.5.61.引入在单机模式下zk服务启动前面已经介绍了,现在将介绍如何通过客户端的形式访问zk服务。其实访问zk服务有很多方式,可以通过java api等,但是这种方式稍微有点复杂,我们现在通过最简单的一种方式实现zk的客户端,即zk自带的cli。2.命令行使用在安装zookeeper之后,我们会使用zkStart.sh的命令启动zk服务,接着会使用zkCli.sh -se...原创 2019-12-12 21:45:50 · 232 阅读 · 0 评论 -
zookeeper源码解析-客户端创建流程
zk版本:3.5.61.引入前面在介绍命令行解析时,提到创建zk客户端,现在我们来看看创建zk客户端要注意什么。2. zk客户端创建在ZookeeperMain.connectZk方法中会创建zk客户端,我们就由此左右分析的起点.ZooKeeperMain.java------------------- connectToZK(cl.getOption("server")...原创 2019-12-12 18:54:00 · 179 阅读 · 0 评论 -
zookeeper源码解析-admin服务
zk版本:3.5.61.引入在单机启动时会创建admin对象 adminServer = AdminServerFactory.createAdminServer(); // 设置zookeeper服务 adminServer.setZooKeeperServer(zkServer); // 服务启动,监听客户端请...原创 2019-12-12 14:53:42 · 2985 阅读 · 0 评论 -
zookeeper源码解析-日志快照清理过程
1.引入在前面介绍单机启动zk服务时,我们提到过启动时会创建DatadirCleanupManager对象,用于清理多余的zk数据,现在我们来看一下它是如何实现的。2.清理数据QuorumPeerMain.java-------------------------- DatadirCleanupManager purgeMgr = new DatadirCleanupManager(c...原创 2019-12-12 12:39:15 · 560 阅读 · 0 评论 -
zookeeper源码解析-单机启动主要流程
zk版本:3.5.6根据zkStart.sh脚本可知,QuorumPeerMain.main方法是启动zk的唯一位置。但是这个启动zk可以分为两种模式:单机模式与集群模式。由于集群模式比较复杂,会在后面一一介绍,现在我们先看看单机模式zk的启动。public static void main(String[] args) { QuorumPeerMain main = ne...原创 2019-12-12 11:29:16 · 296 阅读 · 0 评论 -
zookeeper使用系列-zookeeper api使用
public class ZookeeperTest { public static void main(String[] args) throws Exception { // zookeeper连接// testConnect(); // 创建节点// testSyncCreate(); // 异步创建节...原创 2019-02-21 21:48:41 · 88 阅读 · 0 评论 -
zookeeper源码解析系列一序列化与反序列化
原创 2019-01-26 09:07:46 · 628 阅读 · 0 评论