1.首先创建一个ServerConnectionFactory(这里先分析基于direct NIO,3.4引入了netty),用来监听zkClient的消息并创建ServerConnection处理读写请求
2.ZookeeperServer进行数据恢复:创建ZKDatabase并将PlaybackListener传入,然后ZKDB首先从snapshot中加载有效的镜像构建datatree,加载完成后由Playbacklistener对已经提交但还没有apply的log进行reapply,并将最后的zkXid返回
3.ServerConnectionFactory进行session清理并执行一次checkpoint
4.启动ZookeeperServer,同时SessionTracker等线程,将启动请求发送到RequestProcess chain处理后,最后将ServerConnectionFactory传入.