ZooKeeper 启动过程分析

单机服务器启动

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值