看的是3.5 branch的源码
服务端启动
入口类QuorumPeerMain.main
1. 解析配置文件 zoo.cfg
2. 创建并启动数据清理管理器
3. 判断单机or集群模式,然后启动
单机启动
入口类ZooKeeperServerMain.main
1. 创建数据管理器
数据快照+事务日志文件 管理
2. 创建ZooKeeperServer实例
会初始化ServerStats. Basic Server Statistics. 统计收发的数据包,延迟、总的请求处理数等
3. 创建并注册闭锁
同步控制,当ZkServer状态变为ERROR或SHUTDOWN时,执行Zk关闭处理
4. 创建并启动管理服务器
3.4.8没有,3.5.0有
zk ZooKeeper内嵌的服务器(Jetty). 提供管理功能, 如配置,状态统计,监控等
默认访问地址:http://localhost:8080/commands
5. 创建并启动连接工厂(按需)
6. 创建并启动安全认证工厂(按需)
7. 创建并启动容器管理器
定期对ZNode进行清理
3.4.8的略有差别,参见:
http://c45c43d4.wiz01.com/share/s/34n4fk0NQkwU2orqij3DPijj24m_X_3GXkNy2bIeTH3i9fBT