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主线程
1、初始化Leader选举 2、注册JMX服务 3、检测当前服务器状态 4、Leader选举
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服务器
1、创建并启动会话管理器 2、初始化ZooKeeper的请求处理链 3、注册JMX服务
更多精彩内容,欢迎关注微信公众号:Java小笔记(ijavanote)
原文地址:http://javanote.blog.51cto.com/9155390/1891632