目录
- QuorumPeerMain
QuorumPeerMain
在搭建本地的源码环境中,启动zookeeper服务端的入口为QuorumPeerMain,先看下它的类结构:

它本身只有一个属性quorumPeer,它代表了zookeeper集群中的一台机器,它会不断检测当前服务器实例的运行状态,同时根据情况发起leader选举;入口函数为main()函数,看下源码过程:

从源码中可以看出main()函数主要做了三个工作:
- 加载
zoo.cfg配置,存放到配置实例QuorumPeerConfig中 - 开启定时清理事务日志与快照数据文件的任务,DatadirCleanupManager
- 根据
zoo.cfg文件中是否配置了server.*属性判断是集群模式还是单点模式,后文以集群模式分析。
接下来我们看下集群模式的启动过程:

方法runFromConfig()最关键的工作主要是创建、初始化并启动了quorumPeer,这个过程中涉及到的类大致关系如下:

图中的第1/2/3步主要是搭建服务器的通信网络,第4步是服务器处理请求的过程,第5步是关于数据的存储,第6步是客户端的功能,该系列文章的分析顺序是先弄懂zookeeper的整体运行环境,再逐个详细分析每一个请求的全过程。
















![智慧工厂解决方案[60页PPT]](https://img-blog.csdnimg.cn/img_convert/4281e11a3403159fafa5f819ef57b567.jpeg)



