1. 在阅读zookeeper源码之前,最好还是先了解下zookeeper的应用场景和客户端的基本用法,这样不至于在阅读源码的时候一头雾水。
2. zookeeper是由客户端和服务端两部分组成,服务端又分为单机版和集群版两种(当然是一份代码)。客户端比较简单,而且调试服务端的时候需要客户端发出请求来配合,所以首先推荐阅读客户端的代码。服务端的集群版比较繁琐,如果有志于对zookeeper源码有较深的了解,对于服务端可以先阅读单机版的代码(单机版和集群版共用了很多代码),单机版包括会话、事务日志、快照、责任链、数据库、客户端通信等一些知识点。单机版单机版了解之后,集群版只是在单机版基础上多了leader选举和集群间通信两部分。
3. 阅读源码的正确方式:让项目跑起来,打日志调试。之所以如此是因为开源项目一般都比较大,如果干巴巴地去阅读的话可能会遇到各种坑而浪费很多时间。所以建议把项目实际部署起来,通过添加log的方式阅读源码,这样会事半功倍。