码迷,mamicode.com
首页 > 其他好文 > 详细

ZooKeeper 启动过程分析

时间:2017-01-13 01:23:27      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:配置文件   数据恢复   服务器   

单机服务器启动

ZooKeeper服务器启动,大体分为五个主要步骤:配置文件解析、初始化数据管理器、初始化网络I/O管理器、数据恢复和对外服务。

技术分享

预启动

预启动的步骤如下:
1、统一由QuorumPeerMain作为启动类
2、解析配置文件zoo.cfg
3、创建并启动历史文件清理器DatadirCleanupManager
4、判断当前是集群模式还是单机模式的启动
5、再次进行配置文件zoo.cfg的解析
6、创建服务器实例ZooKeeperServer

初始化

1、创建服务器统计器ServerStats
2、创建ZooKeeper数据管理器FileTxnSnapLog
3、设置服务器tickTime和会话超时时间限制
4、创建ServerCnxnFactory
5、初始化ServerCnxnFactory
6、启动ServerCnxnFactory主线程
7、恢复本地数据
8、创建并启动会话管理器
9、初始化ZooKeeper的请求处理链
10、注册JMX服务
11、注册ZooKeeper服务器实例

集群服务器启动

技术分享

预启动

预启动步骤如下:
1、统一由QuorumPeerMain作为启动类
2、解析配置文件zoo.cfg
3、创建并启动历史文件清理器DatadirCleanupManager
4、判断当前是集群模式还是单机模式的启动

初始化

初始化步骤如下:
1、创建ServerCnxnFactory
2、初始化ServerCnxnFactory
3、创建ZooKeeper数据管理器FileTxnSnapLog
4、创建QuorumPeer实例
5、创建内存数据库ZKDatabase
6、初始化QuorumPeer
7、恢复本地数据
8、启动ServerCnxnFactory主线程

Leader选举

Leader选举的步骤如下:
1、初始化Leader选举
2、注册JMX服务
3、检测当前服务器状态
4、Leader选举

Leader和Follower启动期交互过程


技术分享

Leader和Follower服务器启动期交互过程包括如下步骤
1、创建Leader服务器和Follower服务器
2、Leader服务器启动Follower接收器LearnerCnxAcceptor
3、Learner服务器开始和Leader建立连接
4、Leader服务器创建LearnerHandler
5、向Leader注册
6、Leader解析Learner信息,计算新的epoch
7、发送Leader状态
8、Leaner发送ACK消息
9、数据同步
10、启动Leader和Learner服务器

Leader和Follower启动

Leader和Follower启动步骤如下:
1、创建并启动会话管理器
2、初始化ZooKeeper的请求处理链
3、注册JMX服务


更多精彩内容,欢迎关注微信公众号:Java小笔记(ijavanote)


ZooKeeper 启动过程分析

标签:配置文件   数据恢复   服务器   

原文地址:http://javanote.blog.51cto.com/9155390/1891632

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!