Zookeeper源码分析(1)- Zookeeper的启动流程

来源:互联网 发布:2010年湖人季后赛数据 编辑:程序博客网 时间:2024/05/16 23:42
  1. zookeeper的主类是QuorumPeerMain,启动时读取zoo.cfg配置文件,如果没有配置server列表,则单机模式启动,否则按集群模式启动,这里只分析集群模式
  1. 根据配置初始化quorumPeer对象,并启动quorumPeer线程,这里主要做了几件事情
    1. 读取保存在磁盘上的数据,包括dbsnapshottxnlogzookeeper的存储结构另外专门讲述
    1. 启动cnxnFactory,这里主要是启动一个server,用来接收来自client的请求,绑定在配置文件中的clientPort端口
    1. QuorumAddress上绑定一个server,用来和其他zookeeper server做交互
    2. 启动leader选举过程,因为server刚启动时是存在LOOKING状态,需要发一起一次选举过程来获取leader,选举过程另外专门讲述
    1. 启动quorumPeer的主线程run,根据当前节点的状态来启动不同的流程
      1. 如果是Looking状态,则调用FastLeaderElection::lookForLeader来发起选举流程
      1. 如果是OBSERVING状态,则开始Observer流程
      1. 如果是FOLLOWING状态,则开始Follower流程,另外专门讲述
      1. 如果是LEADING状态,则开始Leader流程,另外专门讲述
0 0